Теперь, когда вы уже попробовали создавать, объединять и удалять ветки, пора познакомиться с некоторыми приемами управления ветками, которые вам пригодятся, когда вы начнете использовать ветки постоянно.
Для начала воспользуйтесь командной строкой. Команда git branch делает несколько больше, чем просто создает и удаляет ветки. При запуске без параметров вы получите простой список имеющихся у вас веток:
> git branch
issue-53
* main
Обратите внимание на символ *, стоящий перед веткой main: он указывает на ветку, на которой вы находитесь в настоящий момент (т. е. ветку, на которую указывает HEAD). Это означает, что если вы сейчас сделаете коммит, ветка main переместится вперед в соответствии с вашими последними изменениями.
Чтобы посмотреть последний коммит на каждой из веток, выполните команду git
branch -v:
> git branch -v
issue-53 560a09c Закончил задачу issue-53
* main 1ea5624 Merge branch 'issue-53' разрешил все конфликты
Параметры --merged и --no-merged могут отфильтровать этот список для вывода только тех веток, которые влиты или еще не влиты в текущую ветку.
Чтобы посмотреть те ветки, которые вы уже влили в текущую, можете выполнить команду
git branch --merged:
> git branch --merged
issue-53
* main
Ветка issue-53 присутствует в этом списке потому что вы ранее
влили ее в main. Те ветки из этого списка, перед которыми нет
символа *, можно смело удалять командой git branch -d. Наработки из
этих веток уже включены в другую ветку, так что ничего не потеряется.
Чтобы увидеть все ветки, содержащие наработки, которые вы пока еще не влили в текущую
ветку, выполните команду git branch --no-merged:
>git branch --no-merged
testing
Вы увидите оставшуюся ветку. Так как она содержит еще не влитые наработки, попытка удалить ее командой git branch -d testing приведет к ошибке:
> git branch -d testing
error: the branch 'testing' is not fully merged
hint: If you are sure you want to delete it, run 'git branch -D testing'
hint: Disable this message with "git config advice.forceDeleteBranch false"
Если вы действительно хотите удалить ветку вместе со всеми наработками, используйте параметр -D, как указано в подсказке.
Аналогичный результат будет, если вы захотите удалить такую ветку интерактивной командой (). Visual Studio Code покажет вам предупреждающее сообщение.

Таким образом Git страхует вас от случайной потери ваших наработок. Если вы действительно хотите удалить такую ветку и потерять наработки, вы можете нажать Удалить ветвь.
Если в качестве аргумента не указан коммит или ветка, то параметры --merged и --no-merged покажут что уже влито или не влито в вашу текущую ветку соответственно.
Вы всегда можете указать дополнительный аргумент для вывода той же информации, но относительно указанной ветки предварительно не извлекая и не переходя на нее.
Например, если ваша текущая ветка testing, то посмотреть ветки, еще не влитые в основную ветку main, можно следующей командой:
> git branch --no-merged main
topicA
featureB
Предположим, у вас есть ветка с именем ветка-с-плохим-именем, и вы хотите переименовать ее в хорошая-ветка, сохранив при этом всю историю. Вместе с этим, вы также хотите изменить имя ветки на удаленном сервере (GitHub, GitLab или другой сервер). Как это сделать?

Переименуйте ветку локально. Для этого перейдите в эту ветку и нажмите () в дополнительном меню репозитория.

В палитре команд введите новое имя ветки и нажмите Ввод.

Ветка ветка-с-плохим-именем будет переименована в хорошая-ветка, но это изменение пока только локальное.

Чтобы все остальные увидели исправленную ветку в удаленном репозитории, отправьте ее туда. Для этого нажмите ().

Теперь текущая ветка хорошая-ветка присутствует и на удаленном сервере.

Однако, старая ветка тоже все еще там, но ее можно удалить с помощью командной строки и команды git push:
> git push origin --delete ветка-с-плохим-именем
To https://github.com/1C-EDT-Developer/coldevex
- [deleted] ветка-с-плохим-именем Теперь старое имя ветки полностью заменено исправленным.

Допустим, вы решили переименовать main в primary:
Ваша локальная ветка main исчезла, так как она заменена веткой primary. Удаленная ветка primary доступна в удаленном репозитории.
Старая удаленная ветка main все еще присутствует в удаленном репозитории. Остальные участники будут продолжать использовать удаленную ветку main в качестве основы для своей работы, пока вы не совершите ряд дополнительных действий.
По материалам книги Pro Git (авторы Scott Chacon и Ben Straub, издательство Apress). Книга распространяется по лицензии Creative Commons Attribution Non Commercial Share Alike 3.0 license.