Git配置合并文件的顺序

时间:2015-08-21 20:58:36

标签: git

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

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

1 个答案:

答案 0 :(得分:2)

2016年10月更新,Git 2.11 +(2016年第4季度)

  

-O<orderfile>git-diff,但似乎并未应用于git-merge

现在有,但git mergetool

请参阅commit 654311b(2016年10月8日),commit 57937f7commit 08221e3commit 8827b3a(2016年10月7日)David Aguilar (davvid)。 帮助:Johannes Sixt (j6t)
Junio C Hamano -- gitster --于2016年10月17日commit 5b4c45a合并)

  

mergetool:荣誉-O<orderfile>

     

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

git mergetool man page现在包括:

-O<orderfile>:
  

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

注意:订单文件格式仅在Git 2.12中记录。

commit 874444bcommit 1a5fcccRichard Hansen (rhansen)(2017年1月15日) Junio C Hamano -- gitster --于2017年1月23日commit 831bd5e合并)

原始答案2015年8月

似乎问题来自对合并驱动程序脚本所做的修改,另外对其他文件的修改。

合并分支时,合并驱动程序脚本本身尚未合并。

为什么不在单独的专用分支中更新合并驱动程序脚本,并首先合并该分支 然后合并你的dev分支。

替代方法也会使用包装器,OP Mikulas Dite comments

  

事实证明,创建自定义合并包装器非常简单,将构建工件保留为-merge
  包装器运行git merge,如果除了人工制品之外没有其他未解析的文件,请运行构建脚本。