Git + Rails: How to restore files deleted with “git rm -r”?

风格不统一 提交于 2019-12-03 12:03:23

问题


I deleted my db folder in a rails application in with git rm -r

I've tried

git reset HEAD

and

git reset --hard HEAD

but the migration files arent coming back. I tried commiting, then running the reset and still nothing.

What should I do?


回答1:


You can checkout the file from the commit where it still exists. Here's how to do it.

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



回答2:


You can checkout individual files from your last commit or index.

git checkout db/* checks out everything under db from the index

git checkout master db/* checks out everything under db from the head of the master branch

you may be able to salvage most of your stuff that way

read more: git help checkout




回答3:


Try git reset --hard HEAD^1 (the commit just before HEAD). Or you can get the hash of a previous known working commit with git log, then git reset --hard <hash>.



来源:https://stackoverflow.com/questions/5024288/git-rails-how-to-restore-files-deleted-with-git-rm-r

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!