@ hobbs уже дал вам правильный ответ .
Чтобы ответить на вопрос в ваш комментарий :
Каждая ветвь будет иметь различный HEAD
.Так как же это на самом деле происходит?
В Git слово HEAD
(заглавными буквами) не означает " верхушка ветви ", как вы могли ожидать 1 ;вместо этого HEAD
- это специальная ссылка, которая указывает на ветку, которую вы в настоящее время извлекаете в своем рабочем каталоге.
Документация лучше всего говорит:
Один Git-репозиторий может отслеживать произвольное количество веток, но ваше рабочее дерево связано только с одной из них (ветвью «текущая» или «извлеченная»), и HEAD
указывает на эту ветку.
Обычно HEAD
указывает на имя ветви 2 , но также может указывать на конкретную фиксацию.Когда это происходит, говорят, что это « отсоединенный HEAD ».
Теперь, так как вы не можете фиксировать напрямую в ветку удаленного отслеживания , когда вы говорите:
git checkout origin/B
HEAD
заканчивается указанием непосредственно на коммит, на который ссылается origin/B
вместо локального имени ветки;таким образом, он становится отделенной ГОЛОВОЙ .
- Это называется "head" , строчные буквы.
- На самом деле в каталоге
.git
есть текстовый файл с именем HEAD
, который буквально содержит название ветви, на которую он указывает.