git reset --hard 提交点后如何还原到分支?

比如分支demo
git log -2后为
a
b
我git reset --hard b后
如何还原到分支demo
1.
我可以git reset --hard a,虽然代码的确是对的,但是我还是处于提交点a,并没有显示分支是demo
2.
git checkout demo也不行。

阅读 926
2 个回答

下面的的命令里面,grhhgit reset --hard 的别名

没有复现, 在我执行了 git reset --hard 65ee3db 以后,bd1 分支就回到了最初的那样。

image.png


当然,我是在一开始就看到了原 HEAD 的 commit id ,实际操作时,我们有可能不知道原来的 HEAD 对应的 commit 了, 这时候可以用的 reflog。

image.png

使用 reflog 找到 reset 操作之前的 reflog id,重置到这个位置的前一个记录上。

image.png

  1. git 分支的本质是一个指针,随着你的提交自动移动到新 commit
  2. 所以你在分支上 reset,其本质就是移动指针到指定 commit,你还在这个分支上,自然不存在 checkout
  3. 如果你要回到原来的 commit,git reset a 应该可行
  4. 但我觉得你并不理解你的问题,建议你说清楚你的需求,看看应该怎么操作
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏