3

我很久以前从存储库中删除了几个文件。多年后的现在,我想看看它们。如果我知道其中一个文件的名称,我可以使用以下命令查看其中一个文件的历史记录:

git log -- path/to/file

如果我想从旧提交中查看该文件的版本,我使用这个:

git show COMMIT:path/to/file

但是所有这些都假设我知道路径/到/文件,而我不知道。有没有办法从给定的 COMMIT 中列出当时存在的所有文件?

我意识到我可以反复这样做,直到找到它:

git checkout -- COMMIT

但是来自旧 COMMIT 的完整文件列表将是理想的。这种能力存在吗?鉴于 git 的全面性,我敢打赌有,但我肯定不知道。

4

2 回答 2

1

您可以找到删除文件的所有提交,例如:

git log --diff-filter=D --name-only --oneline
  • --diff-filter=D仅选择已删除的文件
  • --name-only显示文件名
  • --oneline使用单行提交描述
于 2013-05-04T16:01:20.993 回答
1

如果您想查看给定提交时的所有文件,请使用git ls-tree -r $COMMITID

于 2013-05-04T18:28:18.387 回答