gitpython - 检查分支是否与repo对象合并?

时间:2017-04-01 09:50:03

标签: git git-branch git-merge gitpython

我需要检查我感兴趣的分支是否合并到另一个分支。

使用gitpython,我可以使用它的git命令对象,如:

import git
g = git.Git('/path/to/git/repo')
g.branch("--no-merged", "master")
Out[273]: u'* new\n  test'

所以它输出正确的分支,但格式化返回是不太好的。现在我需要解析字符串并找到我感兴趣的分支。

我在想是否可以使用以下方法完成同样的事情:

repo = git.Repo('/path/to/git/repo')
# Check branches using `repo` object as starting point?

使用repo对象,有许多有用的方法可以检索已经解析为对象的有用信息,但我没有找到如何对repo对象做同样的事情(如果可能的话)在所有?)。

1 个答案:

答案 0 :(得分:0)

我猜合并分支在另一个(master)分支上提前0提交。

from git import Repo
branch_name = 'is-this-branch-merged'    
repo = Repo('.')
commits_ahead = repo.iter_commits('origin/master..%s' % branch_name)
commits_ahead_count = sum(1 for c in commits_ahead)
is_merged = (commits_ahead_count == 0)

很想知道一个更好的版本,你可以找到所有已经合并的版本。很容易分支。