Введение в Git
Системы контроля версий представляют собой программные средства, которые регистрируют все изменения в исходном коде и позволяют легко восстановить старые версии.
Например, если вы заменяете функцию, а потом решаете, что старая версия нравится вам больше, вы можете восстановить исходный фрагмент кода.
Или при обнаружении новой ошибки вы можете вернуться к более ранним версиям, чтобы определить, когда она впервые появилась и какие изменения её вызвали.
Вы можете сравнивать, анализировать, редактировать, сливать изменения и возвращаться назад к последнему сохранению. Этот процесс называется контролем версий.
Git — самое популярное приложение контроля версий.
Как устроен Git
Вы работаете над проектом. В любой момент вы можете сохранить "снимок" (snapshot) вашего проекта. И работать дальше
В любой момент вы можете "откатиться" назад — вернуться к любому из "снимков"
Если вы работаете над проектом не один — ваши коллеги также могут работать над проектом, реализуя другие фичи. И никто не будет мешать друг другу. Это возможно благодаря концепции "веток" (бранчей) — каждый может работать в своей ветке, а потом слить всё в одну.
Установка
Скачайте GIT по ссылке: https://git-scm.com/downloads
Использование
Если вы работаете на Windows, то после установки увидите программы:
GIT GUI — приложение с графическим интерфейсом
GIT Bash — командная оболочка для управления Git. Даже если вы планируете всегда работать из GUI, знать основные команды необходимо.
В будущем возможно вы будете работать под Linux, для которого нет графического приложения.
Работа с командной строкой для любого разработчика — это полезный навык.
Даже с GUI часть команд нужно вводить через консоль
Создайте каталог для вашего проекта.
Запустите программу GIT Bash. Перейдите в папку с проектом.
Настройте git, введя в консоль следующие команды (исправьте на своё имя и почту):
Введите команду
git init
для создания нового репозиторияРепозиторий создан. Теперь состояние вашего проекта отслеживается и доступна история изменений. Убедиться в этом можно при помощи команды
git status
Практика:
Установите GIT на компьютер, создайте репозиторий.
Создайте файл "hello.txt" в своём репозитории, добавьте любой текст
Основные команды
git add <filename>
— добавить файл в "отслеживаемые", то есть подготовить к коммиту
git add .
— подготовить к коммиту сразу все файлы репозитория (точка важна!)
git reset <имя_файла>
— убрать файл из "отслеживаемых"
git commit -m <сообщение коммита>
— сделать коммит
git status
— посмотреть статус файлов
git log
— посмотреть коммиты
git show <hash_commit>
— посмотреть информацию о коммите, здесь хэш коммита - его идентификационный номер
git commit --amend -m 'Новый комментарий'
— перезаписать сообщение последнего коммита
git revert <hash_commit>
— вернуться на состояние до указанного коммита
Удаленный репозиторий
Чтобы поделиться кодом, он должен где-то храниться
Для этого существуют удаленные репозитории и сервисы для их хранения
Один из примеров таких сервисов это GitHub
Практика:
Зарегистрируйтесь на GitHub
Теперь вы можете склонировать себе любой репозиторий, который там есть. Для этого введите команду:
git clone <ссылка_на_проект>
Обратите внимание, каталог с репозиторием будет создан в рабочей директории.
Для подключения своего, локального репозитория к удаленному, введите команду:
git remote add origin <ссылка на удаленный репозиторий>
Для этого удаленный репозиторий должен быть создан. То есть перед этим создайте репозиторий на GitHub.
Ещё пару команд:
git push origin master
— запушить изменения в ветку "master" в удаленный репозиторий "origin". Часто главная ветка называется "main".
git pull origin master
— стянуть себе изменения из удаленного репозитория
Работа с ветками
Ветка — независимая последовательности коммитов в хронологическом порядке
Основной идеей ветвления является отклонение от основного кода и продолжение работы независимо от него. Также это удобно в тестировании отдельного функционала, потому что позволяет работать над новой частью кода, не беспокоясь о поломке чего-то в рабочей версии.
Слияние
Операция может привести к появлению конфликтов при попытке слить ветки. Это вызвано тем, что изменения удаляют или переписывают информацию в существующих файлах. При попытке некорректного слияния Git останавливает выполнение команды, чтобы вы могли разрешить конфликт.
Также стоит упомянуть о существовании ключей, предназначенных специально для работы с конфликтами:
—abort — прерывает слияние и возвращает все к началу
—continue — продолжает слияние после разрешения конфликта
Решить конфликт можно двумя способами:
Вручную разрешить файловый конфликт. Для этого нужно самим изменить файлы, с которыми возникли проблемы. Мы получим файлы такими, какими и представляли их при попытке слияния.
Выбрать более подходящий файл, а от второго отказаться.
Git Flow
Git Flow — стандарт работы с Git, который устанавливается в крупных компаниях и для совместной работы над крупным проектом
Материалы для изучения:
Книга ProGit на русском: https://git-scm.com/book/ru/v2
Last updated