Git-如何将所有更改回滚到上次提交?

Git-如何将所有更改回滚到上次提交?,git,commit,revert,Git,Commit,Revert,我不小心删除了源目录。。我以为我在删除另一个目录。但我有最后一次提交,这是我需要恢复的地方 我有两个分支机构: master dev1 在dev1上: git add . git commit -m 'commit message' 然后: 然后我意外地删除了整个存储库 然后我硬重设到最后一次提交,我看到它显示所有正确的更改都已进行。 但当我到达我的目录时,它是旧目录,我复制了旧目录,但它并没有从这里被删除。 我该怎么办?如果您删除了整个存储库,则必须从备份中取回它,或者从您从中提取或推送到

我不小心删除了源目录。。我以为我在删除另一个目录。但我有最后一次提交,这是我需要恢复的地方

我有两个分支机构:

master
dev1
在dev1上:

git add .
git commit -m 'commit message'
然后:

然后我意外地删除了整个存储库

然后我硬重设到最后一次提交,我看到它显示所有正确的更改都已进行。 但当我到达我的目录时,它是旧目录,我复制了旧目录,但它并没有从这里被删除。
我该怎么办?

如果您删除了整个存储库,则必须从备份中取回它,或者从您从中提取或推送到的任何其他存储库中重建它。git再也没有什么可以做的了。

做点什么吧

吉特日志

获取上一次提交的哈希值,然后执行

git在这里还原您的\u散列\u

恢复提交。最后做一个

git推送


要推动您的更改并将其快速转发到master,这取决于您所说的删除整个存储库的意思。从您对其他答案的评论中,我认为您还没有删除所有内容,如果您仍然可以成功地在该目录中执行git命令,您可以简单地执行git reset-hard master,这将更详细地解释


如果您已经将整个git repository目录完全放置在本地主机上,因为您将更改推送到了remote,那么只需git clone,它就可以从remote上删除所有内容。

您不必在那里硬重置;只需git签出主目录-path/to/folder。git状态是怎么说的?删除整个存储库是什么意思?@poke它没有说明要提交什么。最后一次提交只在另一个分支中。如果我有上一个之前提交的文件。我可以合并它,使它恢复到最新的吗?我尝试了,但它给出了这个错误:cb963f5..f37d6e4新的医疗卡\u rev1->新的医疗卡\u rev1![已拒绝]主机->主机非快进错误:无法将某些引用推送到“/home/oerp/openerp70/openerp/source/addons/救护车_system”以防止丢失历史记录,已拒绝非快进更新。请在再次推送之前合并远程更改,例如“git pull”。有关详细信息,请参阅“git推送帮助”的“关于快进的说明”部分。
git checkout master
git merge dev1