gpt4 book ai didi

python - GitPython 相当于 "git remote show origin"?

转载 作者:太空狗 更新时间:2023-10-29 21:55:32 25 4
gpt4 key购买 nike

我正在尝试更新一个 Python 脚本,该脚本检查少数本地存储库与远程存储库的状态,从使用 subprocess 到使用 GitPythonGitPython 中用于 git remote show origin 的等效命令是什么,或者检查本地存储库是否可快速转发的更好方法是什么或过时(等)?

$ 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)

最后两行是我最关心的。通过遍历 git.Repo.headsgit.Repo.remotes.origin.refs 并进行比较,这似乎可以通过 GitPython 实现.master.commit(等)哈希。这似乎比上面的单个本地 git 命令多了很多工作,并且需要更多的工作来判断哪一方已经过时。我期待像 git.Repo.remotes.origin.status() 这样的东西。在 GitPython 中确定这一点的正确方法是什么?

最佳答案

如果 gitpython 没有包装所需的功能,您可以使用 git.cmd.Git()。它直接调用 git 所以它很方便,虽然我猜它主要只是一个子进程的包装器:

import git

g = git.cmd.Git("/path/to/git/repo")
print(g.execute("git remote show origin")) # git remote show origin
print(g.execute(["git", "remote", "show", "origin"])) # same as above
print(g.remote(verbose=True)) # git remote --verbose

关于python - GitPython 相当于 "git remote show origin"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12681267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com