将它们包含在.gitignore中后,从过去的提交中恢复文件

时间:2015-10-01 14:24:08

标签: git

我有一个曾经被跟踪过的文件,并且是我git历史记录中几个提交的一部分。在某些时候,稍后我将该文件包含在我的.gitignore中。我正在尝试恢复该文件。我尝试了git reset --hard <sha>,我尝试了git checkout <branch/remote/file/etc>。没有那些命令恢复该文件,它不会出现在工作目录中。

请注意,我可以在我的git历史记录中看到该文件。我可以看一下我对它做出的改变,如果需要,我可以复制粘贴git给我看的东西。但是,我如何从早期的提交历史中恢复此文件?重置和结帐对我来说似乎不起作用,我怀疑它是因为在我将该文件提交给git后,我将其包含在.gitignore中并提交。

[UPDATE]

我已尝试删除.gitignore,但仍无法恢复该文件。我重置回文件存在的提交位置以及不在.gitignore中的位置,但它仍然不会将其恢复。

2 个答案:

答案 0 :(得分:2)

尝试专门检出文件。使用提交知道包含文件执行此操作

git checkout <commit> -- path/to/file

答案 1 :(得分:0)

在运行命令之前尝试删除.gitignore文件。 (或将其移出存储库)

这样的东西
rm .gitignore
# If the reset doesn't work because of the change, you can add --force
git reset --hard <sha>