首页 > 解决方案 > 从 .git 存储库中提取图像文件

问题描述

有没有办法查看和提取 git 存储库中所有提交和所有分支中的所有图像?例如,在一个分支中,我添加一个图像 x.jpg 并提交它,然后我删除该图像并添加一个新的 y.jpg 并提交它。如果我回到第一个提交,在存储库中仍然有关于 x.jpg 的信息。我想查看不同提交和不同分支中的所有图像文件。有没有办法做到这一点?无需返回旧提交来查看每个文件的文件。

标签: git

解决方案


git rev-list --all --objects

将为您提供历史上所有内容的列表,您可以根据其显示的内容做任何您喜欢的事情,这git show是将 blob 的内容放在您喜欢的任何地方的简单方法。所以例如

git rev-list --all --objects \
| sed -nr 's/([^ ]*) (.*)\.(jpg|jpeg|png|bmp)$/git show \1 >"\2-\1.\3"/p'

将打印命令以删除工作树中这些图像类型文件的所有历史版本。


推荐阅读