Que signifie git push origin HEAD?

103

J'ai trouvé, dans le guide officiel :

git push origin HEAD

Un moyen pratique de pousser la branche actuelle vers le même nom sur la télécommande.

Cependant, la signification de la commande ne m'est pas claire. Pourquoi cela a-t-il cet effet?

Je n'ai pas pu trouver de réponse ( cette question semble traiter le problème, mais le titre est trompeur).

scristalli
la source

Réponses:

130

HEADpointe vers le haut de la branche actuelle. gitpeut obtenir le nom de la branche à partir de là. Donc c'est la même chose que:

git push origin CURRENT_BRANCH_NAME

mais vous n'avez pas à vous souvenir / taper le nom de la branche actuelle. De plus, cela vous empêche de pousser vers la mauvaise branche distante par accident.

Si vous souhaitez pousser une branche différente de celle actuelle, la commande ne fonctionnera pas.

hek2mgl
la source
17
Il pourrait être utile de mentionner qu'il HEADs'agit d'une référence symbolique, et cela peut être vu avec git symbolic-ref HEAD.
John Szakmeister
Quelle est la difference entre: git push originet git push origin HEAD?
Maciek
1
@MaciejD git push origin sans spécifier de nom de branche ne fonctionne pas. soit vous ajoutez un nom de branche, soit vous dites HEAD, ce qui signifie la branche actuelle dans laquelle vous vous trouvez
Schwarzie2478
2
C'est en fait git push originune commande valide. Si le push.defaultparamètre de configuration Git est défini sur, nothingalors git push origin"ne poussera rien (erreur)" selon man git-config. Mais d'autres push.defaultparamètres ont d'autres comportements. Recherchez push.defaultdans man git-config. Recherchez également «Lorsque la ligne de commande ne spécifie pas pousser» et «Lorsque la ligne de commande ne spécifie pas ce qu'il faut pousser» dans la section de description en haut de man git-push(ce n'est man git-pushpas le cas man git-config).
David Winiecki