我知道,将二进制文件提交到git repo是愚蠢的,通常被认为是一个坏主意,但仍然:
是否可以从git repo中检索二进制文件到某个临时文件夹?
我的意思是给定提交哈希?
答案 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
变体,它不会影响索引。