我想知道是否有办法为多次非连续提交获取累积git diff。
举个例子,我可以使用以下命令获得每次提交中的更改:
git diff 123456^ 123456
其中" 123456"是一个git哈希。
我可以将其用于多次提交。但我现在想做多个差异并将输出合并为一个。
例如,
git diff 123456^ 123456
git diff abcdef^ abcdef
但是将差异合并为一个。但是" 123456"和" abcdef"不是连续提交。
更新 让我们说文件xyz中的一行改变了:
In commit 123456: from "foo" to "bar"
in commit abcdef: from "bar" to "oof"
我只是想看到它改变了" foo"到" oof"在这些之后提交。
git diff 123456 abcdef 对我不起作用,因为我不想在123456和abcdef之间进行所有更改。
我不想做任何事情;只是想这个来检查代码的安全性。
答案 0 :(得分:3)
我确信某人有一个更聪明的方法,但你可以尝试将所有选择的提交压缩成一个,然后在那个上做差异。您可以使用--cherry-pick
执行--no-commit
。获得最终结果后,您可以git diff HEAD
获得基础版本的差异(假设您将自己重置为该位置)。
答案 1 :(得分:0)
git diff <commit-A> <commit-B>
可以生成A
和B
之间的差异,即使A
和B
位于不同的分支或不同的存储库中。