Обратите внимание, что origin
может означает origin/HEAD
, что может быть символической c ссылкой, указывающей на одно из других origin/*
имен удаленного отслеживания. Если origin/HEAD
существует, и вы используете имя origin
само по себе, как вы делаете, 1 См. документацию по gitrevisions и, в частности, шестиэтапный процесс разрешения спецификатор ревизии; обратите внимание, что шаг 6 состоит из добавления ref/remotes/
впереди и /HEAD
в конце любого имени, которое вы указали, и попытки его поиска.
Запустив git remote add origin
, вы можете запустить git remote set-head origin
(с любыми параметрами), чтобы установить ссылку refs/remotes/origin/HEAD
symboli c. Но если вы действительно не хотите запросить у пульта Git, чтобы ваш refs/remotes/origin/HEAD
соответствовал их HEAD
, почти наверняка намного лучше просто использовать явный origin/master
или origin/other-specified-name
, Вот. На самом деле, в сценарии целесообразно использовать полные имена: например, refs/remotes/origin/master
.
Использование модификатора @{upstream}
или @{u}
для имени ветви, вероятно, является лучшим выбором. ; см. Von C ответ .
1 Спецификаторы в составном элементе, такие как HEAD..origin
, составляют три токена: HEAD
, ..
и origin
. Под «самим собой» я подразумеваю, что вы используете origin
как токен таким образом, а не как часть большего токена, такого как origin/master
. Вы также можете написать, например, origin~12
здесь; три токена origin
, ~
и 12
. Хотя синтаксический анализатор Git является ad-ho c, а не использует формальную грамматику с лексемами , он функционирует как единое целое.