Введение
Эта статья знакомит с инструментами управления ветками в 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: просматривать их, фильтровать по статусу слияния, переименовывать локальные и удалённые ветки, а также изменять имя главной ветки. Эти инструменты помогут организовать работу с ветками в проектах любой сложности.
Отзывы