作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 shell 中,我说 'git status' 并得到输出:
Your branch is up-to-date with 'origin/master'.
Your branch is ahead of 'origin/master' by 3 commits.
最佳答案
似乎还没有此功能的包装器(我自己搜索了一个并偶然发现了您的答案)。但是你能做的就是use git directly .
根据您希望解决方案的复杂程度,一种快速的方法可能是执行以下操作:
import re
from git import Repo
a_repo = Repo("/path/to/your/repo")
ahead = 0
behind = 0
# Porcelain v2 is easier to parse, branch shows ahead/behind
repo_status = a_repo.git.status(porcelain="v2", branch=True)
ahead_behind_match = re.search(r"#\sbranch\.ab\s\+(\d+)\s-(\d+)", repo_status)
# If no remotes exist or the HEAD is detached, there is no ahead/behind info
if ahead_behind_match:
ahead = int(ahead_behind_match.group(1))
behind = int(ahead_behind_match.group(2))
print("Repo is {} commits ahead and {} behind.".format(ahead, behind))
关于gitpython - 找出是否在 gitpython 中将更改推送到原点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43037807/
我是一名优秀的程序员,十分优秀!