Python 3.x 如何使用GitPython获取repo的提交数量?
我是GitPython的新手,我想知道回购协议的提交名称。 我正在寻找GitPython中“git rev list--count HEAD”的替代方案,是否有一个特定的函数来实现这一点 我试图让回购协议的每个提交列表显示它的大小,但最后一次提交只显示出来。 谢谢你的帮助, 注意。请尝试以下代码: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
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次提交)的情况下引发一个例外。