.gitattributes与.git/config组合配置自定义diff规则不生效问题求助
.gitattributes与.git/config组合配置自定义diff规则不生效问题求助
各位大佬好,最近折腾Git的diff自定义配置时碰到个诡异的问题,想请大家帮忙看看:
我在项目根目录的.gitattributes里一开始写了:
*.txt -diff
这个配置是正常工作的——执行git diff时确实会忽略所有.txt文件的差异对比。
后来我想给.txt文件单独配置移动内容的高亮规则,就把.gitattributes改成了:
*.txt diff=test
接着在项目本地的.git/config里添加了自定义的diff规则:
[diff "test"] colorMoved = plain
结果奇怪的事情发生了:不管怎么执行git diff,.txt文件里移动的内容完全没有按照plain格式变色。但如果我直接把配置改成全局生效的形式,也就是在.git/config里写:
[diff] colorMoved = plain
这时候所有文件的diff移动内容都能正常变成plain样式的颜色了。
我自己简单排查了下:
- 能确定
.gitattributes是生效的——毕竟之前的-diff规则完全没问题 - 也能确定
.git/config的配置本身是有效的——全局的colorMoved配置能正常工作
但就是把两者组合起来,针对.txt文件的自定义diff规则就是不生效,我用的Git版本是2.33.0.windows.2。
有没有大佬遇到过类似的情况?或者能帮我看看哪里配置错了吗?感激不尽!




