Python 3.x 如何使用GitPython获取repo的提交数量?

Python 3.x 如何使用GitPython获取repo的提交数量?,python-3.x,git,gitpython,Python 3.x,Git,Gitpython,我是GitPython的新手,我想知道回购协议的提交名称。 我正在寻找GitPython中“git rev list--count HEAD”的替代方案,是否有一个特定的函数来实现这一点 我试图让回购协议的每个提交列表显示它的大小,但最后一次提交只显示出来。 谢谢你的帮助, 注意。请尝试以下代码: import git repo_path = 'foo' repo = git.Repo(repo_path) # get all commits reachable from "HEAD" com

我是GitPython的新手,我想知道回购协议的提交名称。 我正在寻找GitPython中“git rev list--count HEAD”的替代方案,是否有一个特定的函数来实现这一点

我试图让回购协议的每个提交列表显示它的大小,但最后一次提交只显示出来。 谢谢你的帮助, 注意。

请尝试以下代码:

import git

repo_path = 'foo'
repo = git.Repo(repo_path)
# get all commits reachable from "HEAD"
commits = list(repo.iter_commits('HEAD'))
# get the number of commits
count = len(commits)
我不熟悉Python3.x。由于Python2.x和3.x之间的差异,可能会出现错误

在做了一些研究之后,我发现我们可以直接调用
git rev list--count HEAD

import git

repo_path = 'foo'
repo = git.Repo(repo_path)
count = repo.git.rev_list('--count', 'HEAD')

请注意,命令名中的
-
应该是代码中的

您可以使用
iter\u commits()
获得所有提交的列表。对其进行迭代并计算提交次数

from git import Repo

repo = Repo()

print(len(list(repo.iter_commits())))

现在可以了!非常感谢我以前没有尝试过这种方式:)第一个iter_提交的示例可能会在没有提交历史(0次提交)的情况下引发一个例外。