254 0

GIT в помощь Системному Администратору

Почему Git/GitHub так важен сегодня? Постараюсь объяснить ‘человеческим’ языком. В первую очередь Github это своего рода социальная сеть разного рода разработчиков, каждый может написать код или скрипт выложить его на Github, тем самым дав возможность другим разработчикам использовать код либо улучшать его. Вы можете из любой точки мира и с любой машины подключиться к своему репозиторию и скачать код для его использования или модификации. Важно понять что GitHub — это сервис для проектов, а Git это инструмент взаимодействия с этим сервисом и реализация распределённой системы контроля версий, что позволяет совместно и комфортно работать над проектами, с разными репозиториями и разными группами людей.

Для большинства операций в Git’е необходимы только локальные ресурсы, информация с других компьютеров в сети не нужна. Поскольку вся история проекта хранится у вас на диске, большинство операций кажутся мгновенными. К примеру, чтобы показать историю проекта, Git’у не нужно скачивать её с сервера, он просто читает её прямо из вашего локального репозитория. Поэтому историю вы увидите мгновенно.
Если вы на отдыхе и вас осенило, можно спокойно сохранять стадии проекта (делать коммиты), а затем отправить их, как только сеть станет доступна.

Перед сохранением любого файла Git вычисляет хеш-сумму, и она становится индексом этого файла. Поэтому невозможно изменить содержимое файла или каталога так, чтобы Git не узнал об этом. Если информация потеряется при передаче или повредится на диске, Git всегда это выявит. Фактически, в своей базе данных Git сохраняет всё не по именам файлов, а по хешам их содержимого.

Начало работы

Установка

apt install git # установка в Ubuntu\Debian
yum install git # установка в CentOS
git --version # проверить версию git

Первое, что вам следует сделать после установки Git’а, — указать ваше имя и адрес электронной почты. Это важно, потому что каждый коммит в Git’е содержит эту информацию, и она включена в коммиты, передаваемые вами:

git config --global user.name "Имя Пользователя"
git config --global user.email myemail@gmail.com

Проверить используемые настройки

git config --list #-l более короткий ключ

Настройки хранятся в ~/.gitconfig в linux, C:\Users\user\.gitconfig в Windows.

Функционал

И так, вы можите:

  • Клонировать существующие чужие репозитории к себе и видоизменять их.
  • А можете создать локальный репозиторий у себя и затем, при желании, загрузить его на сервер в GitHub.

Процесс использования Git:

  • Вносим изменения существующие файлы или добавляем новые.
  • Индексируем изменения и новые файлы.
  • Сохраняем изменения.

Работа с локальным репозиторием

mkdir Проект # Создаём директорию проекта
cd Проект # Переходим в неё
git init . # Инициальзируем текущую директорию для проекта
touch file # Создаём файл, пишем код
git add имя_файла # Индексируем файл в проекте(. или * все файлы)
git commit -m "коментарий" # Сделать снимок файлов проекта, фиксируем изменения (a - выбрать все изменённые файлы для коммита, m - описания коммита)
git status # Посмотреть состояние проекта в данной директории
git status -s # Сокращённая версия статуса

Работа с уже существующим проектом на GitHub

Допустим вы нашли на GitHub интересующий вас код, вы можите копировать его к себе 3 способами: по SSH , по HTTPS, и просто ZIP архивом. Клонирование репозитория с сервера GitHub на локальный компьютер, получаем локальную копию репозитория.

git clone git://github.com/AnatoliiKyrylenko/MD5Checker.git # Клонировать проект с репозитория на локальную машину

Редактируем и добавляем файлы в проект.

git push origin # Отправить локальный репозиторий в github, спросит логин и пароль

История изменений, восстановление файлов и игнорирование файлов

git log # История всех изменений (комитов)
git log -1 # Смотреть информацию по последнему комиту (-p - что именно было изменено)
git checkout -- имя_файла # Вернуть файл до состояния последнего комита
git diff --stage # Посмотреть разницу между последним комитом и стадией add
.gitignore # Список игнорируемых файлов и каталогов (примеры: *.txt -все txt, folder/)

Работа с Ветвлениями

git branch # показать ветки, покажет *master

Ветка master это главная ветка, в больших проектах с ней не работают, а создают её копии, модифицируют, тестируют и уже потом, то что получилось соеденяют с master веткой.

git branch имя_ветки # Созать ветку
git checkout имя_ветки # Перейти на ветку
git checkout -b имя_ветки # Аналог двух верхних команд, создать и перейти на ветку
git merge имя_ветки # Соеденить указанную ветку с master веткой
git branch -d имя_ветки # Стереть ветку (-D для ветвей у которых не было слияния с master веткой)

Возврат на предыдущие версии проекта

git checkout номер_хеша # Вернуться к указанному хешу
git log # Смотреть коммиты и хеши
git checkout master # Вернуться к последнему комиту
git commit --amend # Изменить последний комит
git reset --hard HEAD~2 # Вернуться на 2 комита назад, уничтожив последние 2 комита
git reset --soft HEAD~3 # Уничтожить первые 3 комита и сделать 4-й первым

Hастройка логина в GitHub через SSH Key

На Linux

ssh-keygen # Генерируем ключи SSH на локальном компьютере
cat ~/.ssh/is_rsa.pub # Смотрим ключ и копиркем его

Далее вставляем его на github>settings>SSH and GPG keys>New SSH key
git remote -v # Проверить какой ссылкой соединён репозиторий https или SSH

git remote set-url origin git@ссылка.git # Назначить соединение по SSH

На Windows
Запускаем утелиту Git bash

ssh-keygen # генерируем ключи SSH

По аналогии с Linux копируем is_rsa.pub

Полный алгоритм работы с Git и GitHub

git clone git@github.com:AnatoliiKyrylenko/temper.git # клонируем проект к себе
git checkout -b Имя_task # Создаём ветку для себя и переключаемся на неё
Редактируем, добавляем код.
git add . # Добавить все изменения
git comit -m "коментарий" # Сделать коммит (снапшот проекта)
git push origin # Даст ошибку так как нет ещё вашей ветки на github
git push --set-upstream origin Имя_ветки # Создаст ветку на github и зальёт туда проект

Compare & pull request>Crwate pull request # В меню github для проверки ваших изменений

git branch -d имя_ветки # Стереть локальную ветку, после добавления её в master
git push origin --delete Имя_task # Стереть удалённую ветку

Такого базового функционала хватит для выполнения большинства задач типичного Системного Администратора.

Tagged with: , ,

RELATED ARTICLES

LEAVE YOUR COMMENT

Your email address will not be published. Required fields are marked *




Скоро останутся лишь две группы работников: те, кто контролирует компьютеры, и те, кого контролируют компьютеры. Постарайтесь попасть в первую.

technicscoffee.com

Если вас как и меня интересуют: Linux, фантастика, технологии, игры и фильмы данных тематик, добро пожаловать на мой более развлекательный ресурс!

Категории