我们维护的Web应用程序具有公共主分支和许多并行分支,每个安装一个,每个分支都有一些特定的更改。源代码在git中进行管理,当我们需要将功能和错误修正从master分支转移到并行分支中时,它是一个了不起的工具。但是很少有敏感文件,自动合并通常会产生不好的结果。因此,如果可以以某种方式标记它们,则合并会容易得多,并且每次合并都会导致需要手动合并的冲突。
我搜索了一个答案:
- 我正在使用--no-commit和--no-ff合并选项,但这并不相同。
- 在这里和这里,有人问同样的问题,但没有解决方案。
- 类似的情况似乎是如何防止使用包含以下内容的.gitattributes合并文件:somefile.php merge = ours。我试图找到一些合并选项,该选项会产生冲突或强制进行手动合并,但到目前为止没有找到。
- .gitattributes包含:somefile.php -merge永远不会自动合并,因此会强制进行手动合并。这是90%的解决方案,但我寻求的是尝试自动合并并将其标记为冲突,无论是否成功。但这到目前为止是最接近解决方案的。 (...感谢查尔斯·贝利的澄清...)
- 有人建议编写自定义合并驱动程序(1,2),但如何做到这一点还远未清晰。
编辑:变体4。描述
git fetch
首先这样做,然后使用git difftool <file> FETCH_HEAD
,因此我可以将远程分支中的更改手动应用于本地。