假设我们有一个包含两个图像的git存储库:alice.png
和bob.png
。我们在Initial commit
中提交了此内容。
之后,我们会cp bob.png alice.png
,因此alice.png
将与bob.png
具有相同的内容。
执行git diff
会显示。
现在,如果我打开alice.png
,我会看到鲍勃。如何以编程方式打开/读取/访问旧版alice.png
(如果我git checkout alice.png
会出现?)
我找到的最佳(这不是一个好的)解决方案是:
git checkout .
但我认为应该有更好的解决方案。
对于非二进制文件git show HEAD:path/to/file
does this,但对我来说,在执行git show HEAD:alice.png
时,不会输出任何内容。
答案 0 :(得分:1)
您可以使用git show
访问给定提交的文件。由于您的更改仍然未提交,因此旧文件仍位于HEAD
。
# This opens a file in the pager
git show HEAD:path/to/file
# Save the file to disk
git show HEAD:alice.png > temp.png
如果您的图像查看器支持stdin上的管道,例如ImageMagick的display
,您可以直接查看图像。
git show HEAD:alice.png | display