当前位置: 首页 > 知识库问答 >
问题:

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

晏永康
2024-08-19

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

共有2个答案

卫振
2024-08-19
  1. git 分支的本质是一个指针,随着你的提交自动移动到新 commit
  2. 所以你在分支上 reset,其本质就是移动指针到指定 commit,你还在这个分支上,自然不存在 checkout
  3. 如果你要回到原来的 commit,git reset a 应该可行
  4. 但我觉得你并不理解你的问题,建议你说清楚你的需求,看看应该怎么操作
曾华翰
2024-08-19

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

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

image.png


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

image.png

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

image.png

 类似资料:
  • 我需要使用JGit获取与特定提交关联的分支的名称。我使用JGit获取存储库的提交SHA的完整列表,现在我需要知道它所属的分支的名称。 如果有人能让我知道我如何做到这一点,我将不胜感激。

  • 我想将以前的提交恢复到我的项目。我尝试了git签出

  • 我正在努力在将提交添加到GitHub上的特定分支时触发Jenkins Pipeline作业。 我在詹金斯工作选项上没有看到合适的构建触发器,就像詹金斯自由式工作一样。 如何将Jenkins管道作业设置为在使用新提交更新分支时触发? 到目前为止,我还没有找到这个场景的明确答案,只有在提交到master时触发Jenkins管道作业,只有关于多分支作业的答案。 任何关于这个问题的帮助将不胜感激!

  • 我们介绍一下merge的特殊选项:squash 用这个选项指定分支的合并,就可以把所有汇合的提交添加到分支上。 主要使用的场合: 汇合主题分支的提交,然后合并提交到目标分支。

  • 问题内容: 我在Linux上运行SVN。我希望一旦提交就运行自动部署。根据我的搜索,提交后svn似乎可以解决问题。但是我在SVN安装中找不到SVN提交后。所以我想知道这是否是单独安装?我可以下载并安装任何SVN提交后挂钩吗? 问题答案: 这不是单独的安装。在您的存储库目录中,有一个“挂钩”目录。您可以找到post-commit.tmpl,只需修改文件并将其重命名为可执行文件即可。

  • 本文向大家介绍Git 提交后,包括了Git 提交后的使用技巧和注意事项,需要的朋友参考一下 示例 该挂钩在commit-msg挂钩之后立即被调用。它不能更改git commit操作的结果,因此主要用于通知目的。 该脚本不带任何参数,并且其退出状态不会以任何方式影响提交。