获取多个非连续提交的累积git差异

获取多个非连续提交的累积git差异,git,github,diff,Git,Github,Diff,我想知道是否有办法获得多个非连续提交的累积git差异 例如,我可以使用以下方法获得每次提交中更改的内容: git diff 123456^ 123456 其中“123456”是git哈希 我可以进行多次提交。但我现在想做多个微分,并将输出合并成一个 比如, git diff 123456^ 123456 git diff abcdef^ abcdef 但是将差异合并为一个。但“123456”和“abcdef”不是连续提交 更新: 假设文件xyz中的一行已更改: In commit 12345

我想知道是否有办法获得多个非连续提交的累积git差异

例如,我可以使用以下方法获得每次提交中更改的内容:

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之间的所有更改


我不想做任何事;我只想检查一下代码的安全性。

我肯定有人有更聪明的方法,但你可以尝试将所有选择的提交压缩成一个,然后对该提交进行区分。您可以使用
--no commit
执行
--cherry pick
。一旦你有了最终结果,你就可以
git diff HEAD
用你的基本版本得到它的差异(假设你自己重置到那个位置)。

git diff
可以生成
A
B
之间的差异,即使
A
B
在不同的分支机构或来自不同的回购

感谢您的回复,但我的要求只是为了安全代码审查而查看更改。我不需要承诺任何事情。你不会做出承诺的。--no commit阻止了这一点。事实上,无论是否使用
-n
在工作树中执行工作,而不是作为一系列提交。我认为您的方法与我想要执行的最接近。。。但我不认为我真正想做的是不可能的只是git。谢谢,谢谢,但这不是我想要的。我已经知道怎么做了。@DDS现在你知道怎么做了,你介意在这里分享吗?你是在Windows还是Unix上?