0
A
回答
0
根據this gist,提交的SHA使用以下所有信息計算:
- 的源樹中的提交(其解開到所有的子樹和斑點)
- 父提交SHA1
- 作者信息(姓名,電子郵件地址和時間)
- 的提交者信息(姓名,電子郵件地址和時間)
- 的提交信息
在你的情況,很可能是因爲提交的時間是不同的,這將導致不同的提交ID。
要查看的確切信息被用於計算提交哈希,您可以使用下面的命令(無論提交您要查看的數據替換HEAD):
(printf "commit %s\0" $(git cat-file commit HEAD | wc -c); git cat-file commit HEAD)
您可以驗證這一點將前一個命令的結果傳送給sha1sum。您應該取回用於代替HEAD
的提交的完整ID。
要找出到底什麼是這兩個提交之間的不同,你可以運行以下命令:
diff <(git cat-file commit 3fbf300) <(git cat-file commit 5bc715f)
如果樹上有不同的ID,然後你可以運行git diff 3fbf300 5bc715f
找到不同的是什麼文件之間在每個提交中。
1
顯示的結果還不夠清楚,但可能是因爲您在不同的時間進行了提交,或者對作者和/或提交者名稱和/或提交消息進行了輕微更改。
樹散列應該是相同的,如果所有的文件都是相同的。該提交哈希是SHA-1的提交內容,不過,提交的內容是這樣的:
tree 2d6f17582c301f3c19f64afbe70b629fcc68505b
parent 3dc5ce0a5686ede82b7ee20c895372f61a74f839
author Junio C Hamano <[email protected]> 1433188076 -0700
committer Junio C Hamano <[email protected]> 1433188076 -0700
Sixth batch for 2.5 cycle
Signed-off-by: Junio C Hamano <[email protected]>
(這是混帳當前的主分支,爲我跑git fetch
的時間) 。請注意作者和提交者時間戳。
0
嘗試運行git cat-file commit <branch/commit/etc>
。這是通過SHA1運行以生成提交ID(加上指示數據長度的標頭)的內容。
關於提交IDS是如何構造的更多信息,請參閱https://gist.github.com/masak/2415865。
相關問題
- 1. 爲什麼我有兩個分支同樣提交與不同的散列
- 2. 爲什麼DBMS_MVIEW.REFRESH具有隱式提交?
- 3. 使用pygit2與svn回購獲得所有回購提交
- 4. git拆分回購但具有相同的提交ID
- 5. 爲什麼交叉譜在mlab和scipy.signal中有所不同?
- 6. 什麼是特定提交散列的樹形散列?
- 7. 爲什麼Ruby的散列方法在運行期間會有所不同?
- 8. 爲什麼digest和PKI.digest返回不同的散列?例如,
- 9. 爲什麼我不能以散列格式打印散列表?
- 10. 將所有git提交作爲一個空的裸回購
- 11. 爲什麼不能在散列表中存儲散列表?
- 12. 不通過所有提交重寫git回購歷史記錄
- 13. 是否可以在git中一次一個地提交提交,而不是同時提交所有提交?
- 14. 爲什麼散列方法在rails控制檯中返回不同的值?
- 15. JQuery - 爲什麼不提交?
- 16. 爲什麼git接受以散列符號開頭的提交消息
- 17. 在Gerrit中,我能不能通過回購審覈/批准所有提交?
- 18. 爲什麼我的下拉列表不提交表單?
- 19. 具有不同內容的NSData具有相同的散列
- 20. 分散系列具有不同的y值在散點圖
- 21. 事務回滾和不提交有什麼區別(在MySQL中)?
- 22. 爲什麼有些提交顯示爲「在GitHub上」提交?
- 23. 爲什麼提取返回一個奇怪的整數散列?
- 24. 如何檢索回購中最新可用版本的提交散列
- 25. 爲什麼相同的輸入返回兩個不同的MD5散列?
- 26. 爲什麼我所有的卡夫卡提交都沒有實際提交? (0.9.0.1)
- 27. 在github回購分支中提交
- 28. 爲什麼具有相同數據的列表具有不同的大小?
- 29. 爲什麼Git提交我在電腦上的所有內容?
- 30. 爲什麼以下兩個代碼提供不同的結果?
這也可能感興趣:http://stackoverflow.com/questions/23791999/why-does-git-commit-amend-change-the-hash-even-if-i-dont-make-any-更改 – Jubobs
「不使用分支名稱來計算散列」。 - 它從來沒有。 –