вторник, 17 февраля 2015 г.

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

Команда git branch делает несколько больше, чем просто создаёт и удаляет ветки. Если вы выполните её без аргументов, то получите простой список имеющихся у вас веток:

B00001

Обратите внимание на символ *, стоящий перед веткой master: он указывает на ветку, на которой вы находитесь в настоящий момент. Это означает, что если вы сейчас выполните коммит, ветка master переместится вперёд в соответствии с вашими последними изменениями. Чтобы посмотреть последний коммит на каждой из веток, выполните команду git branch -v:

B00002

Ещё одна полезная возможность для выяснения состояния веток состоит в том, чтобы оставить в этом списке только те ветки, которые вы слили (или не слили) в ветку, на которой сейчас находитесь. Для этих целей в Git'е есть опции --merged и --no-merged. Чтобы посмотреть те ветки, которые вы уже слили с текущей, можете выполнить команду git branch --merged:

B00003

Я перешел в ветку iss53 и там дал эту команду. Поскольку я слил ветки hotfix и master в ветку iss53, то эта команда дала такой результат.

Те ветки из этого списка, перед которыми нет символа *, можно смело удалять командой git branch -d; вы уже включили наработки из этих веток в другую ветку, так что вы ничего не потеряете.

Чтобы увидеть все ветки, содержащие наработки, которые вы пока ещё не слили в текущую ветку, выполните команду git branch --no-merged:

B00004

Поскольку у меня уже нет не слитых изменений из других веток, то вывод этой команды пустой. Если сейчас создать какую-нибудь ветку и сделать там изменения то они появятся в выводе этой команды.

B00005

Вы увидите оставшуюся ветку newtest. Так как она содержит ещё не слитые наработки, попытка удалить её командой git branch -d не увенчается успехом:

B00006

Если вы действительно хотите удалить ветку и потерять наработки, вы можете сделать это при помощи опции -D, как указано в подсказке.

Комментариев нет:

Отправить комментарий