从git中检索二进制文件

时间:2013-12-10 05:09:19

标签: git

我知道,将二进制文件提交到git repo是愚蠢的,通常被认为是一个坏主意,但仍然:

是否可以从git repo中检索二进制文件到某个临时文件夹?

我的意思是给定提交哈希?

1 个答案:

答案 0 :(得分:0)

当然:git checkout会检查它所属的位置,git show会将其显示给标准输出。因此,如果有一个标记v2.3,其名称提交b6636ec88ba0750aec2706865653eb55031fb892,最终包含文件dir1/dir2/image.jpg(这是一个二进制文件),那么:

git show v2.3:dir1/dir2/image.jpg > /some/temp/dir/wrongname-wrongext.gif

会将其副本放在具有不同名称和扩展名的文件中,并且:

git checkout b6636ec88ba0750aec2706865653eb55031fb892 -- dir1/dir2/image.jpg

(在回购邮件中运行时)会检查标记为v2.3的版本(因为v2.3只是b6636ec88ba0750aec2706865653eb55031fb892的简称),在其正常路径下的工作目录中,即使工作的其余部分是在其他修订版本(也许是分支提示)。

编辑(每条评论):请注意特定版本和路径的git checkout将“写入”索引/临时区域,即将保留带有changes to be committed状态的文件的索引(如git status所示)。如果您不想这样,您可能更喜欢git show变体,它不会影响索引。