En aras de un experimento, digamos que su git log
identifica los siguientes compromete¿El SHA-1 de confirmaciones se calcula solo en función del contenido del árbol?
commit 16bc8486fb34cf9a6faf0f7df606ae72ad9ea438 // added 2nd file
commit 9188f9a25b045f130b08888bc3f638099fa7f212 // initial commit
Después de cometer, .git/refs/heads/master
puntos a 16bc8486fb34cf9a6faf0f7df606ae72ad9ea438.
Digamos que, después de esto, puedo editar manualmente el archivo .git/refs/heads/master
para apuntar a 9188f9a25b045f130b08888bc3f638099fa7f212
En este punto, git status reconoce que un nuevo archivo no comprometida está en necesidad de un poco de atención. Este es el mismo archivo que mi segundo commit se encargó antes.
si lo hago COMPROMÉTANSE .. git log
muestra ahora
commit b317f67686f9e6ab1eaabf47073b401d677205d5 // 2nd file committed for the 2nd time
commit 9188f9a25b045f130b08888bc3f638099fa7f212 // initial commit
Pregunta 1:
Se dará cuenta de que SHA
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 2
En este punto, ¿qué pasó con el segundo original comprometerse? Cuando lo hago git show 16bc8486
, muestra este compromiso. Sin embargo, no aparece en el historial git log
.
Lectura interesante: http://book.git-scm.com/1_the_git_object_model.html – Mat