Belov Solutions

Управление ветками в Git

Введение

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

Просмотр веток

Команда git branch без параметров выводит список локальных веток:

git branch
  iss53
* master
  testing

Символ * перед master указывает, что вы находитесь на этой ветке (на неё указывает HEAD). Для просмотра последнего коммита на каждой ветке используйте:

git branch -v
  iss53   93b412c Fix javascript issue
* master  7a98805 Merge branch 'iss53'
  testing 782fd34 Add scott to the author list in the readme

Фильтрация веток

Опции --merged и --no-merged фильтруют ветки по статусу слияния с текущей веткой.

Ветки, уже слитые с текущей:

git branch --merged
  iss53
* master

Ветки, такие как iss53, можно безопасно удалить с помощью git branch -d, так как их изменения уже включены в master.

Ветки, ещё не слитые:

git branch --no-merged
  testing

Попытка удалить неслитую ветку testing командой git branch -d вызовет ошибку:

git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.

Для принудительного удаления с потерей изменений используйте -D:

git branch -D testing

Примечание: Без указания ветки опции --merged и --no-merged показывают статус относительно текущей ветки. Для проверки другой ветки укажите её, например:

git checkout testing
git branch --no-merged master
  topicA
  featureB

Переименование ветки

Предупреждение: Не переименовывайте ветки, используемые другими участниками, без согласования.

Чтобы переименовать ветку bad-branch-name в corrected-branch-name:

git branch --move bad-branch-name corrected-branch-name

Отправьте переименованную ветку в удалённый репозиторий:

git push --set-upstream origin corrected-branch-name

Проверьте состояние:

git branch --all
* corrected-branch-name
  main
  remotes/origin/bad-branch-name
  remotes/origin/corrected-branch-name
  remotes/origin/main

Удалите старую ветку на удалённом сервере:

git push origin --delete bad-branch-name

Изменение имени главной ветки

Предупреждение: Переименование главной ветки (например, master в main) может нарушить интеграции, скрипты и настройки. Согласуйте с коллегами и обновите все зависимости.

Переименуйте локальную ветку master в main:

git branch --move master main

Отправьте новую ветку в удалённый репозиторий:

git push --set-upstream origin main

Проверьте состояние:

git branch --all
* main
  remotes/origin/HEAD -> origin/master
  remotes/origin/main
  remotes/origin/master

После переименования выполните следующие шаги:

  • Обновите код и конфигурацию зависимых проектов.
  • Исправьте настройки тестов, скриптов сборки и публикации.
  • Обновите настройки репозитория (например, ветку по умолчанию, правила слияния).
  • Исправьте документацию, заменив ссылки на старую ветку.
  • Слейте или отмените запросы на включение, связанные со старой веткой.

Удалите старую ветку master на сервере:

git push origin --delete master

Заключение

Вы узнали, как управлять ветками в Git: просматривать их, фильтровать по статусу слияния, переименовывать локальные и удалённые ветки, а также изменять имя главной ветки. Эти инструменты помогут организовать работу с ветками в проектах любой сложности.

Отзывы

Оставить отзыв

Ваша эл. почта не будет опубликована