更改git冲突标记

10

是否可以将冲突标记更改为用户定义的内容?

动机:

由于匆忙且不够仔细地合并多个分支,我的LaTeX文档中会留下一些未处理的合并标记。对于大多数编程项目,这些标记会导致语法错误,因此我可以发现它们。然而,在LaTeX中,<<<<<、==== 和 >>>>> 标记只是编译成其他字符序列,没有任何警告。

为了解决这个问题,我想把这些冲突标记改成一些不能编译的东西,或者至少使它们非常明显(例如:分页符,巨大的字体警告或者编译警告)。

当然,我可以制作一个(bash)脚本,将所有这些标记替换为我选择的内容,但我希望有一种更优雅的解决方案。

P.S. 我发现了merge.conflictstyle选项,但diff3选项只会添加||||标记,而这也会编译而不会有任何警告。

2个回答

9

即使有一种方法可以使自定义冲突标记仅限于LaTeX(我认为没有,但我很可能是错误的),但要在所有情况下选择一个有效的方法可能会很困难。一个更简单的解决方案是启用git库中的“pre-commit”钩子,在提交时检测冲突标记并拒绝提交。使用以下命令启用:

cd <repo>
mv .git/hooks/pre-commit.sample .git/hooks/pre-commit

git自带的钩子还会查找空格错误。要手动运行检查,请使用以下命令:

git diff --check

这是一个方便的解决方案。当错误地提交了带有合并标记的文件时,它会打印出带有文件名和行号的“剩余冲突标记”。这肯定会有助于保持我的文档正确。 - Laar

2
也许你可以用一个大数值来更改conflict-marker-size属性。所谓的大数值是指那些会因为行过长而触发Latex警告的数字。
$ cat .gitattributes
*.tex conflict-marker-size=100 ;# Or whatever makes Latex unhappy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接