Por que o git update-ref aceita referências não / refs?
Embora comandos como "git log" aceitem expressões diferentes para a mesma referência, por exemplo,
refs/heads/master
heads/master
master
isso não é verdade para "git update-ref". Por exemplo
git ,update-ref master HEAD^
não é o mesmo que
git update-ref refs/heads/master HEAD^
O primeiro comando cria um novo ref .git / master (e, por sua vez, introduz uma ambiguidade em relação a refs / heads / master). Somente o segundo comando realmente atualiza a cabeça do mestre. (.git / refs / heads / master)
Por que o git update-ref aceita referências sem o prefixo "refs /"? Não deveria haver pelo menos um aviso ou uma opção de linha de comando para forçar a criação dessas referências?
Levei muito tempo para descobrir por que
git update-ref master HEAD^
não funcionou como esperado.