我们的存储库包含多个源代码文件和一个构建工件文件(例如编译的蜂房蓝图)。
我可以为这个文件配置一个构建脚本作为合并驱动程序,但是如果源尚未合并(或者至少它是从合并状态构建,这是不正确的)它会失败。有没有办法告诉git它应该尝试合并文件的顺序? -O<orderfile>
有git-diff
,但似乎并未应用于git-merge
。
答案 0 :(得分:2)
2016年10月更新,Git 2.11 +(2016年第4季度)
-O<orderfile>
有git-diff
,但似乎并未应用于git-merge
。
现在有,但git mergetool
:
请参阅commit 654311b(2016年10月8日),commit 57937f7,commit 08221e3,commit 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
时 在命令行中指定。
-O<orderfile>:
按照
<orderfile>
中指定的顺序处理文件,每行有一个shell glob模式 这会覆盖diff.orderFile
配置变量 要取消diff.orderFile
,请使用-O/dev/null
。
注意:订单文件格式仅在Git 2.12中记录。
commit 874444b见commit 1a5fccc,Richard Hansen (rhansen
)(2017年1月15日)
(Junio C Hamano -- gitster
--于2017年1月23日commit 831bd5e合并)
原始答案2015年8月
似乎问题来自对合并驱动程序脚本所做的修改,另外对其他文件的修改。
合并分支时,合并驱动程序脚本本身尚未合并。
为什么不在单独的专用分支中更新合并驱动程序脚本,并首先合并该分支 然后合并你的dev分支。
替代方法也会使用包装器,OP Mikulas Dite comments:
事实证明,创建自定义合并包装器非常简单,将构建工件保留为
-merge
。
包装器运行git merge
,如果除了人工制品之外没有其他未解析的文件,请运行构建脚本。