使用GitPython检查本地Python相对于远程的状态

Lor*_*ein 12 python git

我如何使用GitPython来确定是否:

  • 我的本地分支在遥控器之前(我可以安全地推)
  • 我的本地分支在遥控器后面(我可以安全地拉)
  • 我当地的分公司偏离了遥控器?

要检查本地和远程是否相同,我这样做:

def local_and_remote_are_at_same_commit(repo, remote):
    local_commit = repo.commit()
    remote_commit = remote.fetch()[0].commit
    return local_commit.hexsha == remote_commit.hexsha
Run Code Online (Sandbox Code Playgroud)

Von*_*Von 9

请参阅/sf/answers/1110354241/

例如

commits_behind = repo.iter_commits('master..origin/master')

commits_ahead = repo.iter_commits('origin/master..master')

然后你可以使用类似下面的东西从迭代器到计数:

count = sum(在commits_ahead中为1表示)

这是最后一次使用GitPython 1.0.2检查的.

  • 仍可在`GitPython == 3.0.2`下使用 (2认同)