git撤消过去提交的结帐

时间:2013-04-01 18:11:47

标签: git version-control git-checkout

所以我做了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显示没有肮脏的变化

3 个答案:

答案 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 configgit remote等。

另请查看git book中的"Maintenance and data recovery"章节。

如果在任何怀疑中,请将包含存储库的目录复制到一个新副本,在那里你可以傻瓜,直到你确切知道如何恢复(不,git不会丢失任何数据,但解决一个人可以用一些命令创建的混乱是另一个鱼的水壶......)