在提交中获取变更集(或差异)的git SHA1哈希

时间:2011-05-22 11:25:06

标签: git diff changeset sha1

我主要是将完成的主题分支集成到主开发分支中,在git中。在这样做的时候,我有时不得不改变提交(改进,纠正拼写......)的消息,这会导致新的SHA1 ID提交。

我想获得提交中更改的 SHA1哈希 。这将让我们在修改提交消息后验证是否更改了变更集的任何内容。

如果我们能够获得提交序列的变更集的SHA1哈希值,那将会很棒。然后我们就可以进行交互式rebase,我们压缩提交并最终使用变更集的相同SHA1哈希值。

2 个答案:

答案 0 :(得分:2)

当git需要判断是否已经应用了补丁时,例如对于git cherry,它使用git-patch-id来创建该提交引入的补丁的哈希值。也许这适合你想要做的事情?或许git cherry已经做了你想做的事情?这些命令的文档是:

答案 1 :(得分:1)

您可以使用

获取树的某些提交点的SHA1哈希值
git show -s --pretty=format:%T master

其中master是任何提交规范。

请注意,git不跟踪变更集,它会跟踪整个存储库,因此该树ID表示该提交后整个存储库的 state ,而不是该提交添加的更改。