Що означає git push origin HEAD?


103

В офіційному путівнику я знайшов :

git push origin HEAD

Зручний спосіб пересунути поточну гілку на те саме ім'я на пульті дистанційного керування.

Однак значення команди мені не зрозуміле. Чому це має такий ефект?

Я не зміг знайти відповідь ( це питання, мабуть, вирішує проблему, але назва вводить в оману).

Відповіді:


130

HEADвказує на верх поточної гілки. gitможна отримати назву філії з цього. Отже, це те саме, що:

git push origin CURRENT_BRANCH_NAME

але вам не потрібно запам'ятовувати / вводити поточну назву гілки. Також це запобігає випадковому поштовху до неправильної віддаленої гілки.

Якщо ви хочете натиснути іншу гілку, ніж поточна, команда не буде працювати.


17
Можливо, допоможе згадати, що HEADце символічне посилання, і це можна побачити за допомогою git symbolic-ref HEAD.
Джон Сакмайстер,

У чому різниця між: git push originта git push origin HEAD?
Maciek

1
@MaciejD git push origin без зазначення назви гілки не працює. або ви додаєте назву гілки, або ви говорите HEAD, тобто поточна гілка, в якій ви перебуваєте
Schwarzie2478,

2
Насправді git push originє дійсною командою. Якщо для параметра push.defaultналаштування Git встановлено значення, nothingтоді git push origin"нічого не виштовхуватиметься (помилка)" відповідно до man git-config. Але інші push.defaultналаштування мають іншу поведінку. Шукати push.defaultв man git-config. Також шукайте "Коли в командному рядку не вказано, куди натискати" і "Коли в командному рядку не вказано, що потрібно натискати", в розділі опису у верхній частині man git-push(це man git-pushне так man git-config).
Девід Вінецький,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.