2013-04-01 40 views
2

,所以我做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,有没有脏改变

回答

1

git reflog 

要查看当地四处移动你的头裁判的历史和发现的提交的哈希值,你想一回做,

git checkout $THATHASH 
1

“撤销检出”你只需要签出你所需要的版本。如果你想恢复到一些分支只是做git checkout branchname。当然,如果你已经执行了几个不明白其含义的随机命令,那么将它们推回来可能会更困难。

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书中的"Maintenance and data recovery"章节。

如果任何疑问,复制包含库到一个新的副本,在这里你可以四处走动,直到你确切地知道如何恢复目录(无,git不会丢失任何数据,但解开的一塌糊涂一个CAN用几条命令创造的又是一壶鱼......)