合并,没有空白冲突
我有一个问题,我有一个大的提交,改变了大约一千行的代码,从行尾删除空格,并删除空格之前的制表符。
这个项目也有大约50个pull请求,当我的提交被合并时,这些请求都会有冲突。 有没有什么办法可以设置git,以便在合并未来的提交时忽略其中一个只是空白变化的冲突?
修改git本身或使用第三方工具是不可能的,但使用钩子是好的。
git merge -Xignore-all-space
或者(更确切地说)
git merge -Xignore-space-change
应该足以忽略合并期间所有与空间相关的冲突。
见git diff :
--ignore-space-change
忽略空白量的变化。
这会忽略行尾的空格,并认为一个或多个空格字符的所有其他序列是等价的。
--ignore-all-space
比较行时忽略空格。
这忽略了差异,即使一行有空白,而另一行没有空白。
ks1322
在评论中增加了一个很好的build议:
在实际提交之前 ,合并
--no-commit
并且检查合并是值得的。
OP Callum Macrae报告说,在这种情况下,合并不会中断,并且包含在拉取请求修补程序中的尾随空格将应用于本地文件。
但是,OP使用预先提交的钩子来处理所述尾随空格。
(我想有点类似于这个 ,也在这里引用 )。
OP的pre-commit钩子在这里被引用 :
除了删除结尾的空格之外,它会在制表符之前删除一到三个空格(我将制表符宽度设置为4),并添加EOL。
我有报告说,添加EOL的代码删除了Windows中的文件,但一直没有能够复制它。