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