В предыдущем разделе были рассмотрены основы Git, такие как установка и настройка Git, создание репозитория и выполнение первого коммита. Теперь давайте рассмотрим одну из самых мощных функций Git: ветвление и слияние.
Что такое ветвление?
Ветвление в Git – это, по сути, ссылка на конкретный коммит. При работе над проектом основная ветвь обычно называется main или master, но вы можете создавать дополнительные ветви для работы над функциями, исправлениями или экспериментами, не затрагивая ветвь “main“.
Ветви позволяют вам:
- Разрабатывайте новые функции изолированно.
- Работайте с другими, не вмешиваясь в стабильную кодовую базу.
- Поддерживайте чистоту и стабильность основной ветки.
Создание и использование ветвей
1. Создание новой ветки
Предположим, вы хотите создать новую функцию под названием “new-feature“. Чтобы инициировать новую ветку и переключиться на нее.:
git checkout -b new-feature
- Команда ‘checkout -b’ создает ветку ‘new-feature’ и переносит вас в нее.
- Любые изменения, которые вы вносите в эту ветку, теперь будут изолированы.
Чтобы просмотреть все ветви в вашем репозитории:
git branch
2. Работа над веткой
Вы можете редактировать, создавать этапы и фиксировать в своей ветке так же, как и в основной ветке. В качестве примера:
1. Измените существующий файл или создайте новый.
2. Подготовьте файл:
git add <filename>
3. Зафиксируйте изменения:
git commit -m "Adding new feature implementation"
Все эти изменения теперь внесены в ветку “новые функции“, в то время как ваша основная ветка остается неизменной.
3. Переключение между ветвями
Вы можете вернуться в основную ветку (или любую другую ветку), используя:
git checkout main
Теперь вы вернулись в основную ветку, и любые внесённые вами изменения повлияют на неё.
Слияние ветвей
Как только вы будете довольны изменениями в своей функциональной ветке, объедините её с основной веткой.
1. Слияние ветви
Как объединить new-feature в ветку main:
1. Сначала убедитесь, что вы находитесь на «главной» ветке:
git checkout main
2. Объедините new-feature ветку:
git merge new-feature
Git объединит изменения из ветки new-feature с веткой main. Если конфликтов не будет, Git выполнит слияние автоматически.
2. Обработка конфликтов слияния
Изменения в разных ветках иногда могут конфликтовать. Например, если одна и та же строка кода редактируется в обеих ветках, Git не будет знать, какое изменение сохранить, что приведёт к конфликту слияния.
Когда это произойдет:
1. Git отметит конфликт в затронутых файлах. Вы увидите что-то вроде этого.
<<<<<<< HEAD ваши изменения в главной ветке ======= изменения в ветке "новая функция" >>>>>>> new-feature
2. Вам нужно вручную отредактировать файл, чтобы решить, какие изменения оставить. Вы можете оставить изменения из одной ветки или объединить их.
3. После того, как вы разрешите конфликт, создайте файл:
git add <filename>
4. Завершите слияние с помощью:
git commit
Удаление ветки
Это удаляет ветку new-feature из вашего локального репозитория. Вы можете безопасно удалять ветки после их слияния с main.
git branch -d new-feature
Это удаляет ветку new-feature из вашего локального репозитория. Вы можете безопасно удалять ветки после их слияния с main.
Краткое описание ключевых команд
- Создайте новую ветку: git checkout -b <branch-name>
- Переключение ветвей: git checkout <branch-name>
- Объединить ветку в main: git merge <branch-name>
- Удалить ветку: git branch -d <branch-name>
Заключение
В этом разделе мы рассмотрели, как создавать, переключать и объединять ветви, а также как обрабатывать конфликты слияния. Ветвление позволяет вам работать над различными функциями параллельно, не нарушая основной проект.
В части 3 мы обсудим, как работать с удаленными репозиториями на таких платформах, как GitHub и Gitlab.