¿Qué significa git push origin HEAD?

102

Encontré, en la guía oficial :

git push origin HEAD

Una forma práctica de enviar la rama actual al mismo nombre en el control remoto.

Sin embargo, el significado del comando no me queda claro. ¿Por qué tiene este efecto?

No he podido encontrar una respuesta ( esta pregunta parece tratar el problema, pero el título es engañoso).

scristalli
fuente

Respuestas:

129

HEADapunta a la parte superior de la rama actual. gitpuede obtener el nombre de la rama de eso. Entonces es lo mismo que:

git push origin CURRENT_BRANCH_NAME

pero no tiene que recordar / escribir el nombre de la rama actual. Además, evita que empuje hacia la rama remota incorrecta por accidente.

Si desea enviar una rama diferente a la actual, el comando no funcionará.

hek2mgl
fuente
17
Podría ayudar mencionar que HEADes una referencia simbólica y se puede ver con git symbolic-ref HEAD.
John Szakmeister
¿Cuál es la diferencia entre: git push originy git push origin HEAD?
Maciek
1
@MaciejD git push origin sin especificar un nombre de rama no funciona. o agrega un nombre de sucursal o dice HEAD, es decir, la sucursal actual en la que se encuentra
Schwarzie2478
2
De hecho, git push origines un comando válido. Si el push.defaultajuste de configuración de Git está ajustado a nothingcontinuación, git push originserá "no introduzca nada (error de interrupción)", según man git-config. Pero otros push.defaultentornos tienen otros comportamientos. Busque push.defaulten man git-config. También busque "Cuando la línea de comando no especifica dónde empujar" y "Cuando la línea de comando no especifica qué empujar" en la sección de descripción en la parte superior de man git-push(eso es man git-push, no man git-config).
David Winiecki