我可以很好地做到这一点:
git log --format=%h -- filename | while read f; do git show $f:filename; done
但是,如果我尝试添加--follow
到git log
调用中,文件会在目录中移动并更改名称,因此git show
调用会在路径更改时失败。我尝试插入各种东西来获取完整路径(fullname=`ls-tree --name-only $f -- filename`
等)并将其传递给git show
,但没有任何效果,而且我在 google 和 SO 搜索中找不到太多东西。我觉得我错过了一些明显的东西,比如一个git log --format
把戏。
我也接受只获取文件曾经的所有完整路径名,以及获取不再存在路径的完整历史记录的方法。然后我可以分阶段进行,当然我更喜欢一次性方法。