当我执行git merge时,我希望只有能够快进的文件(即仅在合并的分支中的一个分支自最后公共修订以来更改的文件)被自动合并,而所有其他文件(即使在不同行上也已更改了两个分支上的文件)都标记为冲突。我搜索了一下,似乎没有“简单”的方法(例如通过传递给git merge的选项)可以实现这一点。这里有一个类似的问题,但不完全是这样。 这里有一个非常相似的问题,但它已经过去4年,而且没有确定的答案。
据我所知,如果不使用某种脚本,这是不可能实现的(应该不会太难)。几个月前,我曾寻找类似的解决方案,最终我只是禁用了快进合并。我认为在您添加的一些问题中提到了如何禁用它:git merge --no-ff
将 * -merge 放在正在执行合并的存储库的 .git/info/attributes 中。这将防止任何自动合并,而是引入合并冲突。请注意,.git/info/attributes 具有所有 .gitattribute 文件中最高的优先级,因此没有一个文件可以取消它。