Ветвление
При создании новой функциональности рекомендуется работать с отдельной копией исходного проекта, которая именуется веткой. Каждая ветка ведет свою собственную историю и содержит личные изменения до момента, когда вы решите объединить их. Это делается по нескольким причинам:
- Сохраняется стабильная и текущая версия кода.
- Разработка разнообразных функций может вестись одновременно разными командами разработчиков.
- Программисты могут создавать свои изменения в собственных ветках, не тревожась о том, что кодовая база изменится по чужой инициативе.
- Если у вас есть сомнения, различные концепции одной и той же задачи могут разрабатываться параллельно и затем оцениваться друг против друга.
1. Создание новой ветки
Основная ветка в любом репозитории обозначена как master. Для создания дополнительной ветки используется команда branch <name>
$ git branch amazing_new_feature
Эта команда сгенерирует новую ветку, которая является полной копией ветки master на начальном этапе.
2. Переключение между ветками
Если сейчас мы выполним branch
, то увидим два доступных варианта:
$ git branch amazing_new_feature * master
На данный момент активной веткой является master, что обозначается звездочкой. Однако мы стремимся работать с нашей "новой потрясающей фичей",
и для этого мы должны переключиться. Используем для этого команду checkout
, указывая имя ветки, на которую необходимо перейти.
$ git checkout amazing_new_feature
3. Слияние веток
Наша "потрясающая новая фича" будет представлена как текстовый файл feature.txt. Мы создадим его, добавим и коммитим:
$ git add feature.txt $ git commit -m "New feature complete.”
После завершения изменений мы можем снова переключиться на ветку master.
$ git checkout master
При открытии проекта в файловом менеджере, мы не увидим feature.txt, так как сейчас находимся в ветке master, где файла еще нет. Чтобы файл стал частью master, нужно использовать merge для слияния изменений из amazing_new_feature с основной версией проекта.
$ git merge amazing_new_feature
Теперь мастер-ветка обновлена. Ветка amazing_new_feature более не нужна и может быть удалена.
$ git branch -d awesome_new_feature