Где я? * (без ветки)
Я знаком с созданием, объединением и удалением веток. Мне нравится знать, где я, поэтому я не совершаю работу в неправильной ветке. Я использую git branch -a
, чтобы узнать, какие ветки у меня есть. Я думаю, что asterix *
показывает, в какой ветке я сейчас. Что это значит, когда я получаю:
* (no branch)
master
origin/HEAD
код >
Потому что, когда я $git checkout mybranch
, я ожидаю увидеть
* mybranch
master
origin/HEAD
код >
Ответы
Ответ 1
В справочной странице git указывается аргумент имени ветки:
<branch>
Отладка для проверки;
- если он ссылается на ветвь (то есть имя, которое при добавлении с "
refs/heads/
" является действительным ссылочным номером), то эта ветвь проверяется. - В противном случае, если это относится к действительной фиксации, ваш
HEAD
становится "отсоединенным", и вы больше не находитесь в какой-либо ветке.
Итак, вместо того, чтобы проверить имя ветки, вы должны проверить имя тега (действительный фиксатор), сделав HEAD отсоединенным.
Ответ 2
Не похоже, что у вас есть ветвь с именем mybranch
. Если вы хотите создать ветвь, указывающую на текущую головку, используйте git branch foo
.
Если вы хотите, чтобы он указывал на другой номер ссылки, используйте git checkout -b newbranch <ref>