對於實驗的緣故,可以說你的git log
確定了以下承諾是否僅基於樹的內容計算提交的SHA-1?
commit 16bc8486fb34cf9a6faf0f7df606ae72ad9ea438 // added 2nd file
commit 9188f9a25b045f130b08888bc3f638099fa7f212 // initial commit
承諾,.git/refs/heads/master
點16bc8486fb34cf9a6faf0f7df606ae72ad9ea438後。
比方說,在此之後,我手動編輯.git/refs/heads/master
文件指向9188f9a25b045f130b08888bc3f638099fa7f212
在這一點上,git的狀態確認,新提交的文件是需要一定的關注。這是我第二次提交之前處理的文件。
如果我不提交它.. git log
現在顯示
commit b317f67686f9e6ab1eaabf47073b401d677205d5 // 2nd file committed for the 2nd time
commit 9188f9a25b045f130b08888bc3f638099fa7f212 // initial commit
問題1:
你會發現,SHA
散列的第一次之間的不同我犯了第二個文件和現在。這是爲什麼?文件的內容沒有改變,它仍然是一樣的確切文件。
問題2
在這一點上,發生了什麼事原本第二的承諾?當我做git show 16bc8486
時,它顯示這個提交。但它不會出現在git log
的歷史記錄中。
有趣的閱讀:http://book.git-scm.com/1_the_git_object_model.html – Mat 2012-01-15 20:42:01