【发布时间】:2011-06-28 19:11:17
【问题描述】:
我使用 git rm -r 删除了 Rails 应用程序中的 db 文件夹
我试过了
git reset HEAD
和
git reset --hard HEAD
但是迁移文件没有回来。我尝试提交,然后运行重置,但仍然没有。
我该怎么办?
【问题讨论】:
-
在这里查看答案。我相信它涵盖了你的情况。 stackoverflow.com/questions/953481/…
我使用 git rm -r 删除了 Rails 应用程序中的 db 文件夹
我试过了
git reset HEAD
和
git reset --hard HEAD
但是迁移文件没有回来。我尝试提交,然后运行重置,但仍然没有。
我该怎么办?
【问题讨论】:
试试git reset --hard HEAD^1(HEAD 之前的提交)。或者,您可以使用git log 和git reset --hard <hash> 获取先前已知工作提交的哈希。
【讨论】:
您可以从上次提交或索引中签出单个文件。
git checkout db/*从索引中检出 db 下的所有内容
git checkout master db/*从 master 分支的头部检查 db 下的所有内容
这样你也许可以挽救你的大部分东西
阅读更多:git help checkout
【讨论】:
您可以从仍然存在的提交中签出文件。以下是操作方法。
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
【讨论】: