最近尝试合并一个托管在Windows的Stash系统中的pull request时,发现合并按钮被禁用,显示有冲突不能合并,但是在diff页面中没有现实冲突,而且代码实际上并没有任何冲突。
后来在这篇官方文档中了解到实际上是由于Windows限制了包含路径的字符数最大限制是260个字符。
由于Stash是调用Git,Git使用了Windows API,因此这个问题的解决办法就是将提交的代码中超过260个字符的文件,文件夹都删掉,或者移动到上层,减少路径的字符数。
所有在Windows环境中使用的Git都应该有可能遇到这个问题,问题的表现就是:没有冲突,但是无法合并,并且Git(?)提示有冲突。