我主要將完成的主題分支集成到git的主開發分支中。雖然這樣做,我有時必須更改提交(改進,更正拼寫,......)的消息,這會導致帶有新的SHA1 ID的新提交。在提交中獲取變更集(或差異)的git SHA1哈希
我想獲得SHA1哈希的更改提交。這可以讓我們在驗證提交消息後驗證更改集的任何內容是否被更改。
如果我們也可以獲得提交序列的變更集的SHA1哈希值,那將是非常好的。然後,我們可以在我們壓縮提交的地方進行交互式資源重組,並且仍然以變更集的相同SHA1哈希值結束。
我主要將完成的主題分支集成到git的主開發分支中。雖然這樣做,我有時必須更改提交(改進,更正拼寫,......)的消息,這會導致帶有新的SHA1 ID的新提交。在提交中獲取變更集(或差異)的git SHA1哈希
我想獲得SHA1哈希的更改提交。這可以讓我們在驗證提交消息後驗證更改集的任何內容是否被更改。
如果我們也可以獲得提交序列的變更集的SHA1哈希值,那將是非常好的。然後,我們可以在我們壓縮提交的地方進行交互式資源重組,並且仍然以變更集的相同SHA1哈希值結束。
你可以得到一定的樹的SHA1哈希提交點使用
git show -s --pretty=format:%T master
其中master
任何承諾規範。
請注意,git不跟蹤變更集,它會跟蹤整個存儲庫,因此此樹ID代表該提交後整個存儲庫的狀態,而不是該提交添加的更改。
這可能是OP所需要的 - 如果提交元數據已被更改,樹肯定是相同的,並且OP將能夠根據需要檢測「安全地更改」提交。然而,如果人們正在重新定義提交,所以差異是相同的,但他們應用在其他地方,樹木會改變... – Cascabel 2011-05-22 13:01:39
好主意。只要分支沒有重新分配,這個效果就很好。 (不幸的是)rebasing是我們工作流程的一部分。 – 2011-05-30 13:51:10
當git需要判斷補丁是否已經被應用時,對於git cherry
,它使用git-patch-id
創建該提交引入的修補程序的散列。也許這會適合你想要做的事情?或者也許git cherry
已經做到了你想要的?這些命令的文檔是:
這個工作得很好,在做交互式底版時也是如此。 – 2011-05-30 13:52:40
爲什麼你甚至需要這個?難道你不相信它會按照你所說的去做嗎? – svick 2011-05-22 11:51:50
我確實相信git,但其他人(包括我)正在改變提交(通常只提交消息),但我們需要證明更改集沒有被更改。 – 2011-05-22 12:08:53