我遇到了一个问题,其中一个大型提交更改了大约一千行代码,删除了行尾的空格并删除了制表符之前的空格。
该项目还有大约 50 个拉取请求,当我的提交被合并时,所有这些请求都会发生冲突。有没有什么方法可以设置 git,以便在合并未来的提交时,它会忽略其中一个只是空格更改的冲突?
修改 git 本身或使用第三方工具是不可能的,但使用钩子就可以了。
git merge -Xignore-all-space
或者(更精确)
git merge -Xignore-space-change
应该足以忽略合并期间所有与空间相关的冲突。
See git diff:
--ignore-space-change
忽略空白量的变化。
这会忽略行尾的空白,并认为一个或多个空白字符的所有其他序列是等效的。
--ignore-all-space
比较行时忽略空格。
即使一行有空格而另一行没有空格,这也会忽略差异。
ks1322在评论中添加了一个很好的建议:
值得合并--no-commit
并在实际提交之前检查合并.
The OP 卡勒姆·麦克雷报告称,在这种情况下,合并会不间断地进行,并且拉取请求补丁中包含的尾随空格将应用于本地文件。
然而,OP 使用预提交钩子来处理所述尾随空格。
(我想有点类似于this one, also 此处引用).
OP 的预提交钩子是此处引用:
除了删除尾随空白之外,它还删除制表符之前的一到三个空格(我将制表符宽度设置为 4),并添加 EOL。
我收到报告称添加 EOL 的代码会删除 Windows 中的文件,但无法复制它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)