Отделенная голова не исчезает при создании ветки. Зачем?
Я всегда впадаю в отстраненное состояние головы, я не знаю почему. И до сих пор не в состоянии найти хороший способ выбраться из этого. Некоторое время я думал, что достаточно создать ветку, когда он находится в отсоединенной голове, но это не помогает, HEAD остается отсоединенным:
>git branch
(HEAD detached at af34e34)
master
>git branch detachedhead20160610
>git branch
(HEAD detached at af34e34)
detachedhead20160610
master
>git branch detachedhead20160610
Fatal: A branch named 'detachedhead20160610' already exists.
>git branch detachedhead20160610-2
>git branch
(HEAD detached at af34e34)
detachedhead20160610
detachedhead20160610-2
master
Т.е. новые ветки просто добавляются без лечения оторванного состояния головы.
1 ответ
Ваша путаница возникает из-за незнания того, что git branch
команда делает. Из документации:
Обратите внимание, что это создаст новую ветвь, но не переключит на нее рабочее дерево; используйте "git checkout ", чтобы переключиться на новую ветку.
Другими словами, когда вы сделали git branch detachedhead20160610
Вы создали новую ветку под названием detachedhead20160610
но вы не переключились на эту ветку, поэтому Git по-прежнему сообщал о том, что вы находитесь в отдельном состоянии. Вместо этого у вас есть два варианта:
git branch detachedhead20160610 # create a new branch
git checkout detachedhead20160610 # switch to that branch
или вы можете сделать это одной командой через:
git checkout -b detachedhead20160610 # create and switch to new branch