我在创建合并提交之前使用pygit2(用于python的libgit2包装器)。提交两个父母 - 我想做一个类似GitHub的干运行检查,以确保分支机构实际上可以自动合并。
显而易见的方法是循环遍历所有提交,因为分支点和逐行检查冲突。但我认为(希望?)可能有更好的方法。
答案 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
的手册页的“配置”部分。