Git тянуть начало HEAD
Мне научили, что вы можете нажать и вытащить из удаленной ветки, соответствующей имени вашей текущей ветки Git, выполнив:
git push origin HEAD
или
git pull origin HEAD
Он всегда работал на меня раньше, но он странно не работает иногда, вместо этого откладывает отключение/вытягивание из ветки master (что вызывает слияние при нажатии... не то, что я хотеть сделать). Я знаю, что вы можете легко нажать/вытащить из ветки, на которой вы находитесь, просто используя имя ветки, например:
git pull origin name-of-branch-i-want-to-pull-from
В любом случае
- Есть ли причина, по которой HEAD проигрывает трек/не указывает на мою текущую ветку, как это почти всегда происходит?
- Есть ли способ нажать/вытащить ветвь, на которой я сейчас работаю (пока имя удаленной ветки совпадает), без явного указания ветки в команде?
Ответы
Ответ 1
Благодаря некоторой серьезной помощи @abackstrom, я смог исправить свою проблему.
По существу, эта почта была моей проблемой и решением:
Git ветвь с именем origin/HEAD → Происхождение/мастер
Точная команда "воссоздать" /отслеживать локальную ветвь/указатель HEAD правильно:
git remote set-head origin -a
Я надеюсь, что это поможет кому-то еще, кто сталкивается с этой проблемой.
Ответ 2
HEAD на самом деле не является веткой. Это указатель на фиксацию, которую вы в настоящее время проверили, и часто ссылается на ветку, но если вы делаете что-то вроде git checkout <sha>
или git checkout <tag>
, тогда HEAD ссылается на фиксацию напрямую, без привязки к ветке - это называется состоянием "отдельно стоящего HEAD", и вы обычно должны получать предупреждение от git checkout
, когда вы вводите такое состояние. В этом состоянии попытка нажать/вытащить HEAD не имеет смысла, так как вы не на ветке.