O HEAD tem alguns usos adicionais.
Devido a HEAD ser um ponteiro para a confirmação "atual", também é a confirmação que você obtém por padrão ao clonar esse repositório. Portanto, em repositórios remotos , embora eles não tenham uma árvore de trabalho, o HEAD ainda pode existir como um ponteiro para a ramificação "padrão" - aquela que os clones verificam automaticamente.
(Por exemplo, alguns projetos apontam HEAD do repo "master" para um branch 'dev' ou 'stable' em vez de master, para que as pessoas obtenham algo mais útil por padrão.)
No seu caso, no entanto, após clonagem, o Git mantém o <remote>/HEAD
ref em volta porque ele tem mais um outro uso: ele define que a ramificação do Git tentará se o nome remoto é especificado.
Por exemplo, normalmente você não poderia fazer git log origin
, já que refs / remotes / origin / é um diretório, portanto não pode apontar para nenhum lugar. No entanto, o Git então procura automaticamente a origem / HEAD e fornece a você qualquer ramificação que aponta para.
(Isso é configurável usando git remote set-head origin ...
para qualquer ramo que você achar conveniente.)