Cosa significa git push origin HEAD?


103

Ho trovato, nella guida ufficiale :

git push origin HEAD

Un modo pratico per inviare il ramo corrente allo stesso nome sul telecomando.

Tuttavia, il significato del comando non mi è chiaro. Perché ha questo effetto?

Non sono riuscito a trovare una risposta ( questa domanda sembra trattare il problema, ma il titolo è fuorviante).

Risposte:


130

HEADpunta all'inizio del ramo corrente. gitpuò ottenere il nome del ramo da quello. Quindi è lo stesso di:

git push origin CURRENT_BRANCH_NAME

ma non è necessario ricordare / digitare il nome del ramo corrente. Inoltre ti impedisce di spingere accidentalmente al ramo remoto sbagliato.

Se vuoi spingere un ramo diverso da quello attuale il comando non funzionerà.


17
Potrebbe essere utile menzionare che HEADè un riferimento simbolico e può essere visto con git symbolic-ref HEAD.
John Szakmeister

Qual'è la differenza tra: git push origine git push origin HEAD?
Maciek

1
@MaciejD git push origin senza specificare un nome di ramo non funziona. o aggiungi il nome di un ramo o dici HEAD, che significa il ramo corrente in cui ti trovi
Schwarzie2478

2
In realtà git push originè un comando valido. Se l' push.defaultimpostazione di configurazione Git è impostato nothing, allora git push originsarà "Non spingere nulla (errore out)", secondo man git-config. Ma altre push.defaultimpostazioni hanno altri comportamenti. Cerca push.defaultin man git-config. Cerca anche "Quando la riga di comando non specifica dove spingere" e "Quando la riga di comando non specifica cosa spingere" nella sezione della descrizione all'inizio di man git-push( man git-pushnon è così man git-config).
David Winiecki
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.