You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

已执行revert commit但未推送,如何彻底撤销错误分支的所有提交?

彻底清除错误分支上的未推送提交记录

嗨,这种情况完全有办法解决的!毕竟你提到的两个提交(错误提交+撤销它的revert提交)都还没推送到远程仓库,操作起来很安全,给你两种方案,选你顺手的来:

方案一:用Git命令行快速处理

  • 首先确保你当前正处于那个错误的分支上,可以用git branch查看当前分支,前面带*的就是当前分支
  • 如果你确定要回退最近的2个提交(也就是错误提交和revert提交),直接执行:
    git reset --hard HEAD~2
    
  • 要是你不确定要回退的次数,先执行git log --oneline查看提交历史,找到错误提交之前的那个“干净”提交的哈希值(比如看起来像abc123的字符串),然后执行:
    git reset --hard abc123
    
    这样就能精准回退到你想要的干净状态,那两个多余的提交就彻底消失了。

方案二:用Sourcetree图形界面操作

  • 打开Sourcetree,切换到那个错误的分支
  • 在左侧的「提交历史」面板里,找到错误提交之前的那个“干净”提交(也就是你希望分支回到的状态)
  • 右键点击这个干净的提交,选择「Reset current branch to this commit」(重置当前分支到该提交)
  • 在弹出的窗口中,选择**「Hard - discard all working copy changes」**选项,点击确认即可

    注意:这个选项会丢弃当前工作区的未提交修改,如果这两个提交之后你还有没保存的工作,记得先右键点击工作区文件选择「Stash changes」暂存,或者手动备份哦

💡 小提醒:因为所有操作都只在本地分支进行,没有涉及远程仓库,所以完全不用担心影响团队的代码,放心操作就好!

内容的提问来源于stack exchange,提问作者Niclas M

火山引擎 最新活动