我有一个曾经被跟踪过的文件,并且是我git历史记录中几个提交的一部分。在某些时候,稍后我将该文件包含在我的.gitignore中。我正在尝试恢复该文件。我尝试了git reset --hard <sha>
,我尝试了git checkout <branch/remote/file/etc>
。没有那些命令恢复该文件,它不会出现在工作目录中。
请注意,我可以在我的git历史记录中看到该文件。我可以看一下我对它做出的改变,如果需要,我可以复制粘贴git给我看的东西。但是,我如何从早期的提交历史中恢复此文件?重置和结帐对我来说似乎不起作用,我怀疑它是因为在我将该文件提交给git后,我将其包含在.gitignore中并提交。
[UPDATE]
我已尝试删除.gitignore,但仍无法恢复该文件。我重置回文件存在的提交位置以及不在.gitignore中的位置,但它仍然不会将其恢复。
答案 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>