O SHA-1 de confirmações é calculado com base apenas no conteúdo da árvore?
Para uma experiência, digamos que seugit log
identifica os seguintes commits
commit 16bc8486fb34cf9a6faf0f7df606ae72ad9ea438 // added 2nd file
commit 9188f9a25b045f130b08888bc3f638099fa7f212 // initial commit
epois de confirmar,.git/refs/heads/master
aponta para 16bc8486fb34cf9a6faf0f7df606ae72ad9ea43
Vamos dizer que, depois disso, eu edito manualmente o.git/refs/heads/master
arquivo para apontar para 9188f9a25b045f130b08888bc3f638099fa7f212
Nesse momento, o status git reconhece que um novo arquivo não confirmado precisa de alguma atenção. Esse é o mesmo arquivo que meu segundo commit cuidou antes.
Se eu o comprometer ..git log
agora mostra
commit b317f67686f9e6ab1eaabf47073b401d677205d5 // 2nd file committed for the 2nd time
commit 9188f9a25b045f130b08888bc3f638099fa7f212 // initial commit
Questão 1
Você notará queSHA
hashes são diferentes entre a primeira vez que cometi um segundo arquivo e agora. Por que é que? O conteúdo do arquivo não foi alterado, ainda é o mesmo arquivo exato.
Questão
Neste ponto, o que aconteceu com o segundo commit original? Quando eu façogit show 16bc8486
, mostra esse commit. No entanto, não aparece emgit log
história.