合并,没有空白冲突

我有一个问题,我有一个大的提交,改变了大约一千行的代码,从行尾删除空格,并删除空格之前的制表符。

这个项目也有大约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中的文件,但一直没有能够复制它。