当前位置: 首页 > news >正文

git误合并两分支如何回退

当你错误地在 main 分支上执行了 git merge 并触发了 Fast-forward(快进)合并,随后又推送到了远程仓库,可以通过以下步骤将本地和远程的 main 分支恢复至合并前的状态。请根据你的具体情况(例如,错误的提交是否已经与他人共享)选择合适的方法。

下面的表格对比了两种主要的恢复方法:

特性git reset (彻底回退)git revert (安全撤销)
操作本质将分支指针强行移动到之前的提交,移除错误合并的提交新建一个提交,其内容恰好抵消错误合并的更改
历史记录重写历史,错误合并的提交将从分支历史中消失追加历史,错误合并的记录依然存在,但新增了撤销它的记录
风险程度,特别是强制推送覆盖远程仓库时,不改变既有历史
适用场景错误合并尚未被其他同事在其工作中引用;或个人分支错误合并可能已被他人拉取;或团队协作的公共分支(如 main
后续推送需要强制推送 git push -f只需普通推送 git push

1、使用 git reset (彻底回退)

此方法会丢弃自目标提交之后的所有提交,将分支历史重置到合并前的状态。

  1. 找到合并前的提交
    在终端中执行 git log --oneline,找到合并前 main 分支最新的那个提交的哈希值(例如 5b23503)。记下这个哈希值。

  2. 执行本地重置
    确保你当前在 main 分支上,然后执行重置命令:

    git reset --hard 5b23503
    

    请将 5b23503 替换为你第一步中找到的实际提交哈希。--hard 选项会同时将你的工作目录和暂存区恢复到该提交点的状态。

  3. 强制推送到远程仓库
    由于你本地的历史已经改变,必须使用强制推送来覆盖远程仓库的 main 分支:

    git push -f origin main
    

    ⚠️ :此操作会覆盖远程历史

2、使用 git revert (安全撤销)

此方法通过创建一个新的提交来撤销之前错误合并的所有更改,是更安全的选择,尤其适用于团队协作的环境。

  1. 找到要撤销的合并提交
    执行 git log --oneline,找到代表错误合并的那个提交的哈希值(例如 a1daaad)。

  2. 执行撤销操作
    确保你当前在 main 分支上,然后执行撤销命令:

    git revert -m 1 a1daaad
    

    请将 a1daaad 替换为实际的错误合并提交哈希。

    • -m 1 选项是必须的,它告诉 Git 你希望保留在合并操作中主线(通常是 main 分支)的更改状态。
    • 执行后 Git 会打开默认编辑器让你编辑撤销提交的信息,保存并退出即可。
  3. 推送到远程仓库
    由于 revert 是添加新的提交,所以只需要常规推送即可:

    git push origin main
    

补充:

正常公司项目为protected,不允许强制推送,需把下图开关打开:
在这里插入图片描述

http://www.dtcms.com/a/532623.html

相关文章:

  • 【Linux系统编程】编译器gcc/g++
  • LeetCode 面试经典 150_链表_K 个一组翻转链表(61_25_C++_困难)(四指针法;头插法)
  • 做一个简单网站多少钱建设银行网站买手机
  • Ubuntu 22.04上安装Vivado2023.1(离线方式)
  • 使用 OpenAI SDK 调用阿里云 Qwen 模型:从基础到提示词工程实战
  • HTTPS 高频考点
  • 安徽网站建设 网新线上推广100种方式
  • 东莞专业做网站优化用vs2010做网站登入
  • 若依框架学习第二天:功能改造与问题攻坚实战 (2)
  • 为什么要学深度学习?——从“传统编程”到“数据驱动”的思维跃迁(附AI落地案例)
  • 简述网站建设优坏的评价标准wordpress 手机访问不了
  • 浙江网站改版设计公司网站策划书结尾
  • 网站建设 招标公告域名注册的网站
  • 【OC】UIKit常用组件适配iOS 26
  • 自适应微网站开发舟山网站设计
  • 南京高端网站开发朝城做网站公司
  • 26.UE-游戏逆向-绘制骨骼编号
  • 可做产品预售的网站九江有限公司
  • 设计模式-状态模式(State)
  • 强化学习推荐系统:不同的探索策略——贪心探索策略(4.1)
  • Git学习-1
  • 如何运营一个行业网站dede建设网站
  • 找公司网站建设3网站有哪些后台
  • 15.如何利用ArcGIS提取出线要素数据所经过的格网
  • 数据结构<C++>——数组
  • vidhub v1.3.13 |聚合主流网盘,自动刮削整理影视资源,有网盘会员的可入,或者使用不限速网盘
  • 专业网站制作地址杭州网站怎么制作
  • 免费素材网站排行榜征求网站建设
  • 汉口网站制作公司营销网站模板下载
  • 将有序数组转换为二叉搜索树解题思路