Git + Rails:如何恢复用“git rm -r”删除的文件?

时间:2011-02-17 01:50:33

标签: git git-rm

我使用git rm -r

删除了rails应用程序中的db文件夹

我试过

git reset HEAD

git reset --hard HEAD

但是迁移文件没有回来。我尝试提交,然后运行重置,但仍然没有。

我该怎么办?

3 个答案:

答案 0 :(得分:18)

您可以从仍然存在的提交中签出文件。这是如何做到的。

git checkout <commit where the file still exists> -- db
# Example:
git checkout 6936142 -- db

# This also works, but if you have a branch named the same as the file or path,
# it will throw an error.
git checkout 6936142 db

答案 1 :(得分:2)

尝试git reset --hard HEAD^1(HEAD之前的提交)。或者,您可以使用git log获取上一个已知工作提交的哈希值,然后git reset --hard <hash>

答案 2 :(得分:2)

您可以查看上次提交或索引中的单个文件。

  

git checkout db/*检查索引

下db下的所有内容      

git checkout master db/*从主分支的头部检查db下的所有内容

你可以用这种方式挽救你的大部分东西

了解详情:git help checkout