我的同事提交了一份修改,其中他的编辑器在每行末尾添加了分号(除了其他更改)。
我知道可以使用-w
开关来忽略空格错误。是否有一种git
魔法可以完全忽略;
,或者更好的方式是只在行末时忽略它?
类似这样:
git diff --ignore=; -w
--word-diff-regex
选项来解决这个问题。我是这样做的:我创建了一个简单的文件,并使用以下内容提交了它。first line
second line
third line
然后我像这样修改了它:
first line;
second; line;
third changed line;
git diff --word-diff-regex='[^ \\n;]+' HEAD..HEAD~1
这是输出结果:
first line
second line
third[-changed-] line
'[^ \\n]+(?!\\n|$)'
),Git 似乎无法接受它,原因我还不清楚(我仍在努力解决)。无论如何,其背后的逻辑是,此选项“覆盖”了 Git 如何考虑一个单词。我知道这不是正确的正则表达式,因为它没有涵盖几种情况,请根据您的需求更改它(例如,如果您认为test1;test2
是一个单词)。\\n
不起作用。
有效的方法是:--word-diff-regex='[^;[:space:]]+'
。
但这仍然只是一个部分答案,因为它忽略了所有的分号,但已经是一个很好的帮助了。 - Chris Maesgit show modifiedcommit:the/file | sed -e 's/;$//' > /tmp/theFile
git diff originalcommit:the/file /tmp/theFile
post-checkout
钩子来实现? - g19fanatic| grep
不能满足你的需求,或许git diff -G
或者grepdiff
可以胜任(https://linux.die.net/man/1/grepdiff)。 - ludovico