如何使用GitPython计算未发布的提交?

时间:2013-04-06 10:16:13

标签: python git gitpython

使用git status我可以获得有关未发布提交计数的信息:

» git status             
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

我想通过GitPython获取未发布的提交(或计数)。我发现文档repo.git.status(),但这不是我想要的。

2 个答案:

答案 0 :(得分:8)

您正在寻找的命令是:

repo.iter_commits('BRANCH..BRANCH@{u}')

或者如果您希望将其作为列表:

list(repo.iter_commits('BRANCH..BRANCH@{u}'))

BRANCH@{u}语法指的是BRANCH的上游分支。

答案 1 :(得分:1)

感谢@Chronial 和@Clare-Macrae 的反馈 使用 gitPython ==3.1.11,我是这样做的:

branch = self.repo.active_branch
unpushed_symbol = '⇡' if list(self.repo.iter_commits(f'{branch}@{{u}}..{branch}')) else constants.NOTHING
unpulled_symbol = '⇣' if list(self.repo.iter_commits(f'{branch}..{branch}@{{u}}')) else constants.NOTHING