Какая разница между HEAD
и master
в Git?
Я сделал клон проекта на GitHub и хочу перенести свои изменения на пульт. Но к чему я должен подталкивать?
Какая разница между 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 . Я ценю ваш комментарий и думаю, что другие тоже. Содержимое моего оригинального сообщения и ваш комментарий дополняют друг друга. Спасибо.
Просто нажмите изменения вашей текущей ветви
git push origin
и это подтолкнет вашу ветку ' B
' изменения к ' origin/B
'.
Если вы находитесь на своей master
ветке, git будет нажимать на origin/master
.
На самом деле он будет помещать все изменения в локальные ветви, в которых есть соответствующие удаленные ветви origin
. Это контролируется настройкой конфигурации push.default .
Также смотрите описание RefSpecs в книге Pro Git .
То, что вы видите, является боковой панелью, представляющей все refspecs вашего удаленного репо в Experimental GitX fork проекта GitX .
HEAD
Будет обозначать ветвь по умолчанию для этого пульта дистанционного управления.
Смотрите git remote set-head
справочную страницу :
Наличие ветки по умолчанию для удаленного не требуется, но позволяет указать имя удаленного вместо конкретной ветви.
Например, если для ветви по умолчаниюorigin
задано значениеmaster
, тоorigin
может быть указано везде, где вы обычно указываетеorigin/master
.