如何列出 Git 中每个修订版的每个文件(如 Mercurial 的 hg manifest --all)?

如何列出 Git 中每个修订版的每个文件(如 Mercurial 的 hg manifest --all)?

Mercurial 有一个命令可以列出存储库中每个修订版本的每个文件:

hg manifest --all

Git 中是否有等效的命令?

答案1

我对 shell 脚本非常不擅长,所以这肯定不是最佳选择,但如果您使用 bash,这种东西可能会为您解决问题。希望其他人可以过来清理它,或用更好的东西替换它。我只在我的 Mac 上测试过它,所以要小心。

它应该打印当前 HEAD 的祖先提交中的所有文件。将其保存在manifest.sh路径中某处名为的文件中:

#!/bin/bash

TFILE=$(mktemp -t git-manifest)

for sha in $(git log --pretty=format:%H)
do
    git ls-tree --name-only --full-tree -r $sha >> $TFILE
done

sort -u $TFILE
rm $TFILE

相关内容