Управление ветками
Теперь, когда вы уже попробовали создавать, объединять и удалять ветки, пора познакомиться с некоторыми инструментами для управления ветками, которые вам пригодятся, когда вы начнёте использовать ветки постоянно.
Команда git branch
делает несколько больше, чем просто создаёт и удаляет ветки. Если вы выполните её без аргументов, то получите простой список имеющихся у вас веток:
$ git branch
iss53
* master
testing
Обратите внимание на символ *
, стоящий перед веткой master
: он указывает на ветку, на которой вы находитесь в настоящий момент. Это означает, что если вы сейчас выполните коммит, ветка master
переместится вперёд в соответствии с вашими последними изменениями. Чтобы посмотреть последний коммит на каждой из веток, выполните команду git branch -v
:
$ git branch -v
iss53 93b412c fix javascript issue
* master 7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes
Ещё одна полезная возможность для выяснения состояния веток состоит в том, чтобы оставить в этом списке только те ветки, которые вы слили (или не слили) в ветку, на которой сейчас находитесь. Для этих целей в Git’е, начиная с версии 1.5.6, есть опции --merged
и --no-merged
. Чтобы посмотреть те ветки, которые вы уже слили с текущей, можете выполнить команду git branch --merged
:
$ git branch --merged
iss53
* master
Из-за того что мы ранее слили iss53
, мы видим её в этом списке. Те ветки из этого списка, перед которыми нет символа *
, можно смело удалять командой git branch -d
; вы уже включили наработки из этих веток в другую ветку, так что вы ничего не потеряете.
Чтобы увидеть все ветки, содержащие наработки, которые вы пока ещё не слили в текущую ветку, выполните команду git branch --no-merged
:
$ git branch --no-merged
testing
Вы увидите оставшуюся ветку. Так как она содержит ещё не слитые наработки, попытка удалить её командой git branch -d
не увенчается успехом:
$ git branch -d testing
error: The branch 'testing' is not an ancestor of your current HEAD.
If you are sure you want to delete it, run 'git branch -D testing'.
Если вы действительно хотите удалить ветку и потерять наработки, вы можете сделать это при помощи опции -D
, как указано в подсказке.