Какая разница между HEAD
и master
в Git?
Я сделал клон проекта на GitHub и хочу перенести свои изменения на пульт. Но к чему я должен подталкивать?
master
это ссылка на конец ветки. По соглашению (и по умолчанию) это обычно основная ветвь интеграции, но это не обязательно.
HEAD
на самом деле это особый тип ссылки, который указывает на другую ссылку. Это может указывать master
или не может (это будет указывать на то, какая ветвь в настоящее время извлечена). Если вы знаете, что хотите принять участие в master
ветке, нажмите на это.
Вот наглядный пример:
В вашем собственном репозитории вы можете проверить, куда HEAD
указывает указатель, запустив это:
$ git symbolic-ref HEAD
refs/heads/master
Однако выяснить, куда remotes/origin/HEAD
указывает указатель, сложнее, поскольку он находится на удаленной машине.
Здесь есть отличный небольшой учебник по ссылкам на git:
http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1
Простой ответ -
HEAD
это указатель / метка для самого последнего коммита ветки, в которой вы находитесь.master
является веткой по умолчанию, созданной при инициализации git-репозитория (напримерgit init
).Вы можете удалить
master
ветку (напримерgit branch -D master
). Вы не можете удалитьHEAD
указатель.источник
HEAD
msgstr " это указатель / метка для самого последнего коммита ветки, в которой вы сейчас находитесь." Я думаю, что это в лучшем случае вводит в заблуждение. Если вы извлекаете более старый коммит, то HEAD теперь является указателем на этот более старый коммит, а не на самый последний коммит. Правильно?checkout
команда эквивалентна переключению ветвей в других распространенных системах SCM.HEAD
самом деле является указателем Git . Я ценю ваш комментарий и думаю, что другие тоже. Содержимое моего оригинального сообщения и ваш комментарий дополняют друг друга. Спасибо.Просто нажмите изменения вашей текущей ветви
и это подтолкнет вашу ветку '
B
' изменения к 'origin/B
'.Если вы находитесь на своей
master
ветке, git будет нажимать наorigin/master
.На самом деле он будет помещать все изменения в локальные ветви, в которых есть соответствующие удаленные ветви
origin
. Это контролируется настройкой конфигурации push.default .Также смотрите описание RefSpecs в книге Pro Git .
То, что вы видите, является боковой панелью, представляющей все refspecs вашего удаленного репо в Experimental GitX fork проекта GitX .
HEAD
Будет обозначать ветвь по умолчанию для этого пульта дистанционного управления.Смотрите
git remote set-head
справочную страницу :источник