为子文件夹和文件递归提取 git 时间

extracting git time recursivley for subfolders and files

我正在尝试创建一个字典,其中的元素格式为 filename: timestamp in yy-mm-dd hh:mm:ss 。这应该递归地包括 repo 中的所有子文件夹和文件。我看到了这段代码:

import git
repo = git.Repo("./repo")
tree = repo.tree()
for blob in tree:
    commit = repo.iter_commits(paths=blob.path, max_count=1).next()
    print(blob.path, commit.committed_date)

但是,这仅包括主要的子文件夹。如何递归包含子文件夹和文件

注意:Roland 此处的以下解决方案不包括子文件夹,只需要 files.Also 我需要在下载 git repo 的路径中,然后 运行 脚本通过给出它的绝对路径

Get time of last commit for Git repository files via Python?

这对我有用

http://gitpython.readthedocs.io/en/stable/tutorial.html#the-tree-object

根据文档,由于树仅允许直接访问它们的中间子条目,因此使用遍历方法获取迭代器以递归检索条目

它创建了一个生成器对象来完成工作

print tree.traverse()
<generator object traverse at 0x0000000004129DC8>




  d=dict()
  for blob in tree.traverse():
        commit=repo.iter_commits(paths=blob.path).next()
           d[blob.path]=commit.committed_date