El SHA-1 de las confirmaciones se calcula solo en función del contenido del árbol?

Por el bien de un experimento, digamos tugit log identifica los siguientes commits

commit 16bc8486fb34cf9a6faf0f7df606ae72ad9ea438  // added 2nd file
commit 9188f9a25b045f130b08888bc3f638099fa7f212  // initial commit

Después de comprometerse,.git/refs/heads/master apunta a 16bc8486fb34cf9a6faf0f7df606ae72ad9ea438.

Digamos, después de esto, edito manualmente el.git/refs/heads/master archivo para señalar 9188f9a25b045f130b08888bc3f638099fa7f212

En este punto, el estado de git reconoce que un nuevo archivo no confirmado necesita atención. Este es el mismo archivo que mi segundo commit se ocupó antes.

Si lo cometo ..git log ahora muestra

commit b317f67686f9e6ab1eaabf47073b401d677205d5  // 2nd file committed for the 2nd time
commit 9188f9a25b045f130b08888bc3f638099fa7f212  // initial commit

Pregunta 1

Notarás queSHA hashes son diferentes entre la primera vez que cometí un segundo archivo y ahora. ¿Porqué es eso? El contenido del archivo no cambió, sigue siendo el mismo archivo exacto.

Pregunta

En este punto, ¿qué pasó con el segundo commit original? Cuando lo hagogit show 16bc8486, muestra esta confirmación. Sin embargo, no aparece engit log historia.

Respuestas a la pregunta(6)

Su respuesta a la pregunta