获取git仓库中文件的所有历史版本

时间:2015-01-05 18:08:34

标签: git version-control git-checkout

我希望在git repo中检索文件的所有历史版本,并将它们保存到多个文件中。我正在考虑制作一个脚本来逐个检出所有提交标签并保存目标文件,但有没有更简单的方法来做到这一点?谢谢!

2 个答案:

答案 0 :(得分:1)

git rev-list --all --objects -- path/to/file.txt

列出与repo路径关联的所有blob

获取文件的特定版本

git cat-file -p commitid:path/to/file.txt

答案 1 :(得分:0)

for file in $(git log --format="%H" --all --follow --name-status   -- <path/to/your/file> | egrep '\w' | perl -pe 's/([0-9a-f]{40})\n/\1/' | perl -pe 's/(.{40}).*\s(\S+)$/\1:\2/'); do git cat-file -p $file > content_of_$(echo $file | cut -c -40); done

这假设您的文件的名称或路径中没有空格字符。 (反正不应该。)