从Git仓库提取特定版本的文件

3

是否可以将Git存储库中的特定文件版本提取到外部文件夹位置?

我在Git仓库中有几个Excel(二进制)文件。我想将该文件的特定版本提取到外部文件夹,而不必执行git checkout,以便我的当前工作目录不受干扰。

System information:
Windows 8, 64 bit.
msysgit 1.9.4
3个回答

4

在Git中有一个有用的工具。它可以通过show命令使用。 通过输入命令-,查看show的所有选项。

git show

如果您想查看文件的特定版本,请使用以下格式 -
git show commit:filename

现在可以通过--将内容导出到文件中。
git show commit:filename > newfilename

1
我希望在未来的版本中,这个功能可以直接从Git UI中实现。目前先这样处理。 - Ayusman

2

git show <commit>:<path>会打印出给定提交中给定路径下的文件。只需使用>将其存储到文件中,就完成了。


是的,这看起来像一个巧妙的技巧。我尝试了一下,效果很好。但我认为从Git Gui中有更简单的方法来实现它。我点赞了你的回答,但还在等待更准确的答案。 - Ayusman

1

我不知道它是否适用于二进制文件。您可以使用 git show 命令。使用方式如下:

git show commitHash:path/to/file.xls

我忘了提到show命令只会在控制台中显示文件。对于二进制文件,它没有帮助。而且,我在这里尝试做的是将特定版本的文件副本提取到外部目录。 - Ayusman
1
使用 che 提供的解决方案中提到的输出重定向,将输出放入文件 git show commitHash:path/to/file.xls > file.xls - koffeinfrei

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接