GitHub如何检查两个分支是否可以自动合并?

时间:2011-09-15 22:06:52

标签: git libgit2

我在创建合并提交之前使用pygit2(用于python的libgit2包装器)。提交两个父母 - 我想做一个类似GitHub的干运行检查,以确保分支机构实际上可以自动合并。

显而易见的方法是循环遍历所有提交,因为分支点和逐行检查冲突。但我认为(希望?)可能有更好的方法。

1 个答案:

答案 0 :(得分:2)

GitHub通过运行git merge some_branch命令并检查返回状态来做到这一点;对于冲突的合并,git merge命令返回1.

$ git merge test1 
Auto-merging HELLO
CONFLICT (content): Merge conflict in HELLO
Automatic merge failed; fix conflicts and then commit the result.
$ echo $?
1

在一次性分支中执行此操作,从而阻止将成为合并基础。

编辑: merge.verbosity选项,当设置为“0”时,也可能有一些用处(不知道如何在没有炮轰的情况下将此应用于pygit):

  

控制递归合并策略显示的输出量。   如果发生冲突,级别0除了最终错误消息外什么也不输出   检测。 1级仅输出冲突,2个输出冲突和文件   变化。 5级及以上输出调试信息。默认   是2级。可以被GIT_MERGE_VERBOSITY环境覆盖   变量

请参阅位于http://linux.die.net/man/1/git-merge git merge的手册页的“配置”部分。