所以我做了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
显示没有肮脏的变化
答案 0 :(得分:1)
要“撤消结帐”,您只需要检查所需的修订。如果您想恢复某个分支,请执行git checkout branchname
。当然,如果你已经执行了几个不理解其含义的随机命令,那么将它们推回可能会更困难。
答案 1 :(得分:1)
做一个
git reflog
要查看移动HEAD引用的本地历史记录,并找到您想要返回的提交的哈希值,并且
git checkout $THATHASH
答案 2 :(得分:1)
你处于分离的HEAD 状态,回去只是git checkout master
。但与此同时,在你身边挣扎,删除了那个(git branch -D master
)......恭喜!
git fsck --lost-found
应该会向你显示几个漂浮在空中的提交(你已经放弃了,你被杀master
)。做一个git checkout
,然后环顾四周。如果看起来像您遗失的master
,请在那里执行git branch master
。检查一下它是否合理。该分支的配置(从中获取等)将丢失,并且需要重建。请参阅git config
,git remote
等。
另请查看git book中的"Maintenance and data recovery"章节。
如果在任何怀疑中,请将包含存储库的目录复制到一个新副本,在那里你可以傻瓜,直到你确切知道如何恢复(不,git
不会丢失任何数据,但解决一个人可以用一些命令创建的混乱是另一个鱼的水壶......)