wes*_*wes 7 python git gitpython
我正在尝试更新一个Python脚本,该脚本检查一些本地存储库的状态,以防止从使用子进程到使用GitPython的远程控制器.什么是等效的命令GitPython的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)
Run Code Online (Sandbox Code Playgroud)
最后两行是我主要关注的问题.它看起来像这可能是可能的GitPython通过迭代git.Repo.heads和git.Repo.remotes.origin.refs和比较.master.commit(等)的哈希值.这似乎比上面的单个本机git命令要多得多,并且需要更多的工作来判断哪一方已经过时.我期待着类似的东西git.Repo.remotes.origin.status().在GitPython中确定这个的正确方法是什么?
git remote show origin如果您需要每个分支的简洁报告,我不知道有什么比作为子进程运行更好的了。如果您对单个分支感兴趣,假设您已经完成了提取,则可以检查落后或领先的提交数量,如下所示:
commits_behind = list(repo.iter_commits(
'{branch}..{tracking_branch}'.format(
branch=branch,
tracking_branch=repo.heads[branch].tracking_branch())))
commits_ahead = list(repo.iter_commits(
'{tracking_branch}..{branch}'.format(
branch=branch,
tracking_branch=repo.heads[branch].tracking_branch())))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3234 次 |
| 最近记录: |