Git配置文件合并的顺序



我们的存储库包含多个源代码文件和一个构建工件文件(例如编译的蜂房蓝图)。

有一个构建脚本,我可以配置为这个文件的合并驱动程序,但是如果源还没有合并(或者至少它从合并状态构建,这是不正确的),它就会失败。有没有办法告诉git合并文件的顺序?git-diff有一个-O<orderfile>,但这似乎不适用于git-merge

2016年10月更新,适用于Git 2.11+(2016年第四季度)

git-diff有一个-O<orderfile>,但这似乎并不适用于git-merge

现在有了,但是对于git mergetool:

参见David Aguilar (davvid)的commit 654311b(2016年10月8日),commit 57937f7, commit 08221e3, commit 8827b3a(2016年10月7日)。
帮助:Johannes Sixt (j6t)。

(由juno C Hamano - gitster -在提交5b4c45a, 2016年10月17日)

mergetool:荣誉-O<orderfile>

mergetool将" -O<orderfile> "传递给git diff在命令行中指定。

git mergetool手册页现在包括:

-O<orderfile>:

按照<orderfile>中指定的顺序处理文件,每行有一个shell glob模式。这将覆盖diff.orderFile配置变量。要取消diff.orderFile,请使用-O/dev/null

注意:orderfile格式仅在Git 2.12中有文档。

参见commit 874444b, commit 1a5fccc (15 Jan 2017) by Richard Hansen (rhansen)。
(由juno C Hamano—gitster—在commit 831bd5e中合并)


2015年8月原答

似乎问题来自于对合并驱动程序脚本的修改,除了对其他文件的修改。

当你合并你的分支时,合并驱动脚本本身还没有被合并。

为什么不在一个单独的、专用的分支中更新你的合并驱动脚本,然后先合并那个分支呢?
然后合并你的开发分支。

另一种方法也是使用包装器,正如OP Mikulas Dite所评论的那样:

事实证明,这真的很简单,创建一个自定义合并包装器,留下构建工件作为-merge
包装器运行git merge,如果除了工件之外没有其他未解析的文件,则运行构建脚本。

最新更新