我正在尝试更新一个Python脚本,使用GitPython替换了subprocess,以检查几个本地仓库与远程仓库的状态。在GitPython中,git remote show origin
的等效命令是什么?或者有没有更好的方法来检查本地仓库是否可以进行fast-forwardable或out-of-date等操作?
$ git remote show origin
* remote origin
Fetch URL: <url>
Push URL: <url>
HEAD branch: master
Remote branches:
XYZ tracked
master tracked
Local branches configured for 'git pull':
XYZ merges with remote XYZ
master merges with remote master
Local refs configured for 'git push':
XYZ pushes to XYZ (up to date)
master pushes to master (up to date)
我最关心的是最后两行。看起来可以通过使用GitPython遍历git.Repo.heads
和 git.Repo.remotes.origin.refs
并比较.master.commit
(等等)哈希值来实现这一点。 这似乎比上面的单个本机git命令更多工作,并且需要更多的工作才能确定哪些方面已过时。我希望能像 git.Repo.remotes.origin.status()
那样做。在GitPython中,确定这一点的正确方式是什么?