Co oznacza git push origin HEAD?

103

Znalazłem w oficjalnym przewodniku :

git push origin HEAD

Wygodny sposób na przesłanie bieżącej gałęzi do tej samej nazwy na pilocie.

Jednak znaczenie tego polecenia nie jest dla mnie jasne. Dlaczego ma taki efekt?

Nie udało mi się znaleźć odpowiedzi ( wydaje się, że to pytanie rozwiązuje problem, ale tytuł jest mylący).

scristalli
źródło

Odpowiedzi:

131

HEADwskazuje górę bieżącej gałęzi. gitmoże uzyskać z tego nazwę oddziału. Więc to jest to samo, co:

git push origin CURRENT_BRANCH_NAME

ale nie musisz pamiętać / wpisywać aktualnej nazwy oddziału. Zapobiega również przypadkowemu przejściu do niewłaściwego zdalnego oddziału.

Jeśli chcesz wypchnąć inną gałąź niż bieżąca, polecenie nie zadziała.

hek2mgl
źródło
17
Warto wspomnieć, że HEADjest to symboliczny odnośnik i można go zobaczyć za pomocą git symbolic-ref HEAD.
John Szakmeister
Jaka jest różnica między: git push origini git push origin HEAD?
Maciek
1
@MaciejD git push origin bez określenia nazwy gałęzi nie działa. albo dodajesz nazwę oddziału, albo mówisz HEAD, co oznacza bieżącą gałąź, w której się znajdujesz
Schwarzie2478
2
Właściwie git push originto prawidłowe polecenie. Jeśli push.defaultustawienie konfiguracji Git jest ustawione na, nothingto git push origin„nic nie wysyła (błąd wychodzi)” zgodnie z man git-config. Ale inne push.defaultustawienia mają inne zachowania. Szukaj push.defaultw man git-config. Wyszukaj także „Gdy wiersz polecenia nie określa, gdzie należy wypchnąć” i „Gdy wiersz polecenia nie określa, co należy przekazać” w sekcji opisu u góry man git-push(to man git-pushnie jest man git-config).
David Winiecki