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