甚至更好interdiff
,现在有了 Git 2.19(2018 年第三季度),您拥有git range-diff
.
请参阅“ Git diff - 两个不相交的修订范围”
该git range-diff
文档包括以下示例:
当 rebase 需要解决合并冲突时,使用以下命令直接比较 rebase 引入的更改:
$ git range-diff @{u} @{1} @
的典型输出git range-diff
如下所示:
------------
-: ------- > 1: 0ddba11 Prepare for the inevitable!
1: c0debee = 2: cab005e Add a helpful message at the start
2: f00dbal ! 3: decafe1 Describe a bug
@@ -1,3 +1,3 @@
Author: A U Thor <author@example.com>
-TODO: Describe a bug
+Describe a bug
@@ -324,5 +324,6
This is expected.
-+What is unexpected is that it will also crash.
++Unexpectedly, it also crashes. This is a bug, and the jury is
++still out there how to fix it best. See ticket #314 for details.
Contact
3: bedead < -: ------- TO-UNDO
------------
在此示例中,有 3 个旧提交和 3 个新提交,其中开发人员:
- 删除了第 3 个,
- 在前两个之前添加了一个新的,并且
- 修改了第二次提交的提交消息及其差异。
当输出到终端时,默认情况下它是彩色编码的,就像常规git diff
的输出一样。另外,第一行(添加一个提交)是绿色,最后一行(删除一个提交)是红色,第二行(完美匹配)是黄色的,就像git show
's output 的提交头一样,第三行颜色旧的提交是红色的,新的提交是绿色的,其余的就像git show
's 提交头。
使用 Git 2.20,新类型的(范围)差异更好地支持颜色
请参阅提交 2543a64、提交 8d5ccb5、提交 7648b79(2018 年 8 月 17 日)和提交 4441067 、提交f103a6f、提交 29ef759、提交 017ac45、提交 9d1e16b、提交 84120cc、提交 c5e64ca、提交 991eb4f(8 月 14日)(由Junio C Hamano 合并 -- --在提交 30035d1中,2018 年 9 月 17 日)stefanbeller
gitster
range-diff
: 缩进特殊行作为上下文
+++
当涉及到差异的特殊行时,范围差异着色有点模糊,例如用and指示新旧文件---
,因为它会拾取第一个字符并解释它的颜色,这在常规差异中看起来很烦人, 这些行通过 . 以粗体显示
DIFF_METAINFO
。
通过用空格缩进这些行,它们将被视为更有用的上下文,范围差异系列本身的示例:
git range-diff pr-1/dscho/branch-diff-v3...pr-1/dscho/branch-diff-v4
(来自存储库github.com/gitgitgadget/git
)
[...]
+ diff --git a/Documentation/git-range-diff.txt b/Documentation/git-range-diff.txt
+ new file mode 100644
+ --- /dev/null
+ +++ b/Documentation/git-range-diff.txt
+@@
++git-range-diff(1)
[...]
+
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
[...]
为手册页介绍新文件的第一行将带有“ +
”符号,该行的其余部分将是粗体。
后面指示更改的Makefile
行将被视为外部和内部差异中的上下文,以便这些行保持常规颜色。