4

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

显而易见的方法是循环自分支点以来的所有提交并逐行检查是否存在冲突。但我认为(希望?)可能有更好的方法。

4

1 回答 1

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部分。

于 2011-11-08T01:52:57.817 回答