如何显示git知道的所有文件?

tim*_*mmy 6 git

如何生成 git 在整个历史过程中知道的文件名(包括路径)列表?

Den*_*ker 8

天真的解决方案:

git rev-list --all | xargs -n1 git ls-tree --full-name -r --name-only  | sort -u
Run Code Online (Sandbox Code Playgroud)

这列出了所有提交,然后使用它来列出每个提交中的所有文件。对重复数据进行排序。仅适用于小型存储库,因为它需要很长时间。

更好的解决方案是使用 libgit2 来做同样的事情,应该更快但需要一些编程。可以在 github上找到实现这一点的快速技巧。它使用 pygit2 并且比上面的 shell 管道快一个数量级。