使用 查看差异时git diff
,每个更改都以如下行开头:
@@ -28,41 +20,10 @@ namespace ConsoleApplication1
对于 C,最后一部分非常具有描述性——例如,它显示了发生更改的函数。但是对于 C#,它只显示命名空间,这不是很有用。我认为那是因为它显示了没有缩进的最后一行。有没有办法配置这个?
我找到了它,该行称为 hunk header 并且文档说明了如何自定义它:
定义自定义块头
文本差异输出中的每组更改(称为“hunk”)都以以下形式的一行作为前缀:
@@ -k,l +n,m @@ TEXT
这称为大块标头。默认情况下,“TEXT”部分是以字母、下划线或美元符号开头的行;这与 GNU
diff -p
输出使用的匹配。但是,此默认选择不适用于某些内容,您可以使用自定义模式进行选择。首先,在 .gitattributes 中,您将为
diff
路径分配属性。*.tex diff=tex
然后,您将定义一个“diff.tex.xfuncname”配置以指定一个正则表达式,该正则表达式与您希望显示为大块标题“TEXT”的行匹配。
$GIT_DIR/config
像这样向您的文件(或$HOME/.gitconfig
文件)添加一个部分:[diff "tex"] xfuncname = "^(\\\\(sub)*section\\{.*)$"
笔记。配置文件解析器会吃掉单级反斜杠,因此您需要将反斜杠加倍;上面的模式选择以反斜杠开头的行,零次或多次出现 sub 后跟 section 后跟左大括号,直到行尾。
请参阅gitattributes 手册页、“生成差异文本”部分,以及例如diff.csharp.xfuncname
配置(搜索xfuncname
)。