获得多个非连续提交的累积 git 差异
Get a cumulative git diffs for multiple non-consecutuve commits
我想知道是否有办法获得多个非连续提交的累积 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 之间进行所有更改。
我不想做任何事;只是想检查代码的安全性。
我敢肯定有人有更聪明的方法,但您可以尝试将您选择的所有提交压缩为一个,然后对那个进行比较。你可以通过 --cherry-pick
和 --no-commit
来做到这一点。获得最终结果后,您可以 git diff HEAD
了解其与基本版本的差异(假设您将自己重置为该位置)。
git diff <commit-A> <commit-B>
可以在 A
和 B
之间生成差异,即使 A
和 B
位于不同的分支或来自不同的回购协议。
我想知道是否有办法获得多个非连续提交的累积 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 之间进行所有更改。
我不想做任何事;只是想检查代码的安全性。
我敢肯定有人有更聪明的方法,但您可以尝试将您选择的所有提交压缩为一个,然后对那个进行比较。你可以通过 --cherry-pick
和 --no-commit
来做到这一点。获得最终结果后,您可以 git diff HEAD
了解其与基本版本的差异(假设您将自己重置为该位置)。
git diff <commit-A> <commit-B>
可以在 A
和 B
之间生成差异,即使 A
和 B
位于不同的分支或来自不同的回购协议。