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显示没有肮脏的变化

4

3 回答 3

1

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

于 2013-04-01T18:18:58.733 回答
1

做一个

git reflog

要查看您在本地移动 HEAD ref 的历史并找到您想要返回的提交的哈希值,请执行

git checkout $THATHASH
于 2013-04-01T18:20:32.377 回答
1

你处于分离的 HEAD状态,回去本来只是git checkout master. 但与此同时,在你身边挣扎删除了那个(git branch -D master)......恭喜!

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

另请查看git book 中的“维护和数据恢复”章节。

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

于 2013-04-01T18:34:29.297 回答