Acabei de ajudar um amigo a depurar uma "referência git quebrada". A correção foi bastante fácil , update-ref -d
mas rm -r .git/refs/...
ainda não entendo o que causa isso em primeiro lugar.
Tenho um conhecimento médio-alto do git nos bastidores, mas não me aprofundei muito no .git
diretório real.
Como as ramificações/refs são armazenadas .git
e o que causa referências quebradas? Ele não tinha feito nada de incomum quando isso aconteceu.
As referências do Git são apenas ponteiros para hashes SHA-1 de commits que podem apontar para ramificações, tags, etc.
Eles são armazenados em arquivos, como quase tudo no Git, então alguns dos possíveis motivos de quebra são:
ou algo parecido que possa causar problemas genéricos com arquivos.
Outra razão possível é que alguém forçou o push e o controle remoto não foi atualizado corretamente, então a instância local do git ficou confusa após o pull. Ou qualquer tipo semelhante de dessincronização.