O que significa git push origin HEAD?

102

Encontrei, no guia oficial :

git push origin HEAD

Uma maneira prática de enviar o branch atual para o mesmo nome no remoto.

No entanto, o significado do comando não está claro para mim. Por que isso tem esse efeito?

Não consegui encontrar uma resposta ( esta pergunta parece resolver o problema, mas o título é enganoso).

scristalli
fonte

Respostas:

129

HEADaponta para o topo da ramificação atual. gitpode obter o nome do ramo a partir daí. Portanto, é o mesmo que:

git push origin CURRENT_BRANCH_NAME

mas você não precisa se lembrar / digitar o nome do branch atual. Além disso, evita que você direcione para o ramal remoto errado por acidente.

Se você deseja enviar um branch diferente do atual, o comando não funcionará.

hek2mgl
fonte
17
Pode ser HEADútil mencionar que é uma referência simbólica e pode ser vista com git symbolic-ref HEAD.
John Szakmeister
Qual é a diferença entre: git push origine git push origin HEAD?
Maciek
1
@MaciejD git push origin sem especificar um nome de branch não funciona. ou você adiciona um nome de branch ou diz HEAD, significando o branch atual em que você está
Schwarzie2478
2
Na verdade, git push originé um comando válido. Se a push.defaultconfiguração do Git estiver definida como nothing, git push origin"não enviará nada (erro para fora)" de acordo com man git-config. Mas outras push.defaultconfigurações têm outros comportamentos. Pesquise push.defaultem man git-config. Pesquise também "Quando a linha de comando não especifica onde enviar" e "Quando a linha de comando não especifica o que enviar" na seção de descrição na parte superior de man git-push(ou seja man git-push, não man git-config).
David Winiecki