我有一个Git存储库,我想看看几个月前一些文件的样子。我找到了那个日期的修订本;这是27 cf8e84bb88e24ae4b4b3df2b77aab91a3735d8。我需要看到一个文件看起来像什么,并将其保存为(“新”)文件。

我设法使用gitk查看文件,但它没有保存它的选项。我尝试使用命令行工具,我得到的最接近的是:

git-show 27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8 my_file.txt

但是,该命令显示的是一个差异,而不是文件内容。我知道我可以稍后使用类似PAGER=cat的东西并将输出重定向到一个文件,但我不知道如何获得实际的文件内容。

基本上,我在找svn cat之类的东西。


当前回答

并且很好地将它转储到一个文件(至少在Windows上)- Git Bash:

$ echo "`git show 60d8bdfc:src/services/LocationMonitor.java`" >> LM_60d8bdfc.java

引号是必需的,所以它保留了换行符。

其他回答

并且很好地将它转储到一个文件(至少在Windows上)- Git Bash:

$ echo "`git show 60d8bdfc:src/services/LocationMonitor.java`" >> LM_60d8bdfc.java

引号是必需的,所以它保留了换行符。

通过签出以前的提交并复制文件,从以前的提交中获取文件。

注意你在哪个分支上:git分支 签出你想要的上一个提交:git签出27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8 将需要的文件复制到临时位置 签出你开始的分支:git Checkout thebranchyounotes 复制放入临时位置的文件 提交你的更改到git: git Commit -m "添加的文件??从之前的提交"

在Windows中,使用Git Bash:

在工作空间中,将dir更改为文件所在的文件夹 Git显示cab485c83b53d56846eb883babaaf4dff2f2cc46:./your_file。Ext > old.ext

你需要提供文件的完整路径:

git show 27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8:full/repo/path/to/my_file.txt

这将帮助您在提交之间获得所有已删除的文件,而无需指定路径,如果有大量文件被删除,则非常有用。

git diff --name-only --diff-filter=D $commit~1 $commit | xargs git checkout $commit~1