Git撤销对过去提交的签出



所以我选择了git checkout <past_commit_hashtag>

但是我想撤销它并返回到当前的最新版本

所以我做了一大堆事情:

git reset --hard
git checkout <root folder>
git branch -D master
git checkout master

尽管如此,我现在得到一个错误消息Fatal error: Cannot redeclare file_create_url() etc,这意味着我没有正确地恢复到最新版本…

我怎样才能正确地回到当前的版本?

git pull --rebase显示我的分支是最新的git status显示无脏变化

Do a

git reflog

查看您的移动HEAD refaround的本地历史记录,并找到您想要返回的提交的哈希值和

git checkout $THATHASH

要"撤销签出",您只需要签出所需的修订。如果你想恢复到某个分支,只需执行git checkout branchname。当然,如果您已经执行了几个随机命令而不理解它们的含义,那么回滚它们可能会更加困难。

您处于分离的HEAD状态,返回将只是git checkout master。但与此同时,你却删除了那个(git branch -D master)……恭喜你!

git fsck --lost-found应该向你展示漂浮在空中的几个提交(你已经放弃的,以及你杀死的master)。每个都做一个git checkout,然后环顾四周。如果它看起来像你丢失的master,在那里做一个git branch master。检查它是否正常。该分支的配置(它从哪里获取,等等)丢失了,需要重建。参见git configgit remote

还可以查看git手册中的"维护和数据恢复"章节。

如果有任何疑问,将包含存储库的目录复制到一个新的副本,在那里您可以胡闹,直到您确切地知道如何恢复(不,git不会丢失任何数据,但解开混乱的混乱可以用几个命令是另一回事…)

最新更新