一位同事创建了一个提交,他的编辑在每一行中附加了分号(以及其他更改)。
我知道我可以使用 -w
开关来忽略空格错误。是否会有某种 git
魔法让 git 完全忽略 ;
,或者仅在 EOL 时更好?
类似于:
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
一个词)。
关于git diff 忽略行尾的分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56315074/