误推 master 该 revert 还是 reset?撤销与补 MR 流程

作者:是2的10次方啊日期:2026/9/11

前两天开发完一个功能,习惯性 git commitgit push——刷新远程,提交直接落在了 master。CI 已经跑了一分钟,群里有人问谁合的。

一句话结论:已 push 到共享 master → git revert;只在本地、还没 push → git reset


一、revert 和 reset 怎么选

git revertgit reset
做法新增反向 commit,原 commit 仍在移动分支指针,可抹掉 commit
远程安全,不改写公共历史需 force push,影响他人
适用master / 共享分支本地或未 push 的分支
情况用什么
已 push 到 mastergit revert
本地 commit,未 pushgit reset --soft/mixed
刚 push、无人 pull、负责人确认极少数 reset + --force-with-lease(非常规,慎用)
commit 含密钥revert 当前代码 + 必须 git-filter-repo 清历史 + 轮换密钥(revert 删不掉历史里的密钥)

二、已 push:revert 撤回 + 处理 SOP

别慌,按顺序来:

步骤做什么
1. 停不要立刻 force push,先看 CI 和同事有没有 pull
2. 查git log origin/master -5
3. 撤git revert HEAD(多个 commit 见下)→ git push origin master
4. 告通知团队 pull,别在误提交上继续开发
5. 补流程需要 MR 记录时,走第三节 Case 2
6. 防配分支保护 + pre-push hook
1git log --oneline -5
2git revert HEAD                 # 单个 commit
3git push origin master
4
5# 多个误提交:一次性 revert 再提交(比逐个 revert 少冲突)
6git revert --no-commit HEAD~2..HEAD
7git commit -m "Revert mistaken commits on master"
8git push origin master
9

冲突:手动改完冲突文件 → git add <file>git revert --continue


三、补走 MR 流程:三种 merge 场景

图例:A = 误推的功能 commit;B/C = 分支上后续 commit;R = revert;M = MR 合并。

Case操作结果
1拉分支,master 不 revert,直接 merge无效——分支与 master 都有 A,提示 Already up to date
2拉分支 → master revert → MR merge标准做法,代码回到误推后状态,历史留 Review
3amaster 仍含 A,分支上又有 B、C,直接 merge,只合入 B、C 增量
3bmaster 已 revert(有 R),分支含 A、B、C,再 merge,A+B+C 一并合回

最常见走 Case 2;分支上若还继续提交了 B、C,按 3a 或 3b 处理。

顺序不能反:

1正确:先拉分支(含 A)→ master revert(产生 R)→ MR 合回(产生 M)
2错误:先 revert 再拉分支  分支没有功能 commit,合不回来
3错误:只拉分支不 revert  Case 1,merge 无效
4

Case 2 完整流程(补规范标准做法,历史上会多 R 和 M,但比 force push 安心):

1git checkout master && git pull
2git checkout -b feature/order-fix    #  从含误提交的 master 拉分支
3git push -u origin feature/order-fix
4
5git checkout master
6git revert HEAD                      #  单个;多个见第二节
7git push origin master
8
9#   MR:feature/order-fix  master
10

MR 合并后 master 代码与误推后一致。分支若还有 B、C(Case 3),合入后会比当初误推时更多:

1Case 2:master: ... ── A ── R ── M     feature: ... ── A
2Case 3:master: ... ── A ── R ── M     feature: ... ── A ── B ── C
3

四、还没 push:用 reset

1git reset --soft HEAD~1    # 撤销 commit,改动留暂存区
2git reset HEAD~1           # 改动留工作区
3git reset --hard HEAD~1    # 彻底丢弃(慎用)
4

若还想补 MR 流程:git branch feature/xxx 带走 commit → master 上 reset 回远程 → push feature → 提 MR。


五、预防:靠门禁,不靠口头约定

远程(团队必配):Gitee / GitHub 保护 master——禁止 direct push,必须 PR/MR + Review。配好后直推会被拒绝。

本地兜底.githooks/pre-push 拦截 master 直推:

1#!/bin/sh
2for p in master main; do
3  b=$(git symbolic-ref HEAD 2>/dev/null | sed 's|.*/||')
4  t=$(git rev-parse --abbrev-ref @{u} 2>/dev/null | sed 's|.*/||')
5  [ "${t:-$b}" = "$p" ] && echo "禁止 push  $p,请走 feature + MR" && exit 1
6done
7
1git config core.hooksPath .githooks && chmod +x .githooks/pre-push
2

习惯:开功能先 git checkout -b feature/xxx;push 前看 git branch --show-current。CI 侧 master 只跑测试、不自动发布。


六、参考内容


误推 master 该 revert 还是 reset?撤销与补 MR 流程》 是转载文章,点击查看原文


相关推荐


【AI 应用 -- 白话大模型(篇八)】《从零系统学习 AI Skill之起源发展、文件结构、编写原则、机制原理与项目实战案例》
j7~2026/9/3

Skill 1.背景 关键时间时间线 从 2023 年到 2026 年,AI 大模型 “调用工具” 和 “执行任务” 的能力经历了四次关键跃迁。这条时间线记录了从工具调用雏形到多代理生态平台的完整技术路径。 2023.06|OpenAI Function Calling —— 工具调用的雏形 这是最早让 AI 模型能够主动请求调用外部函数的标准化接口,首次赋予大模型与外部系统交互的能力,为后续所有工具调用协议奠定基础。2024.11|Anthropic MCP —— 连接工具与数据


Apple Foundation Models PCC 申请与使用:从权限到真机验证
沐风AI2026/8/26

Apple 又送钱来了。 如果你正在开发 iOS 或 macOS App,想给用户加入总结、改写、翻译、文档问答等能力,Apple Foundation Models 的 PCC 方案值得认真看一遍。它的关键价值不是“又多了一个大模型 API”,而是:在符合条件并拿到权限之后,App 可以通过原生 Swift 框架访问 Apple 的 Foundation Model,不要求你在客户端塞入 OpenAI、Claude 或 Gemini 的 API Key。 但这件事也最容易被一句“无需 AP


Vue3 表单编辑器:左侧控件菜单 + 中间编辑区的拖拽全流程实现
今天吃了嘛o2026/8/13

Vue3 表单编辑器:左侧控件菜单 + 中间编辑区的拖拽全流程实现 基于 Vue3 + vuedraggable + Pinia 实现的表单编辑器,涵盖从左侧菜单拖拽添加控件、点击添加、中间区域排序调换、复制删除、切换题型等核心交互。本文只摘取代表性代码,梳理整体流程和设计思路。 目录 一、整体架构与数据流二、技术选型三、左侧控件菜单(form_menu_drag.vue)四、中间编辑区(form_render_drag.vue)五、Pinia Store 核心方法(edit


分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
阿里云大数据AI技术2026/8/4

作者:赵阳,钛动科技 DSP 大数据架构团队 在 DSP 广告业务中,数据链路需要同时支撑在线投放、计费、Ad-hoc 分析和 BI 报表等多类场景。不同场景对数据新鲜度、查询延迟、回刷能力和存储成本的要求差异很大。如果继续用一套统一链路承载所有数据,系统很容易在成本、性能和稳定性之间相互牵制。 钛动科技 DSP 广告链路的核心数据流可以概括为:Request、Response、Impression、Click 和 Postback。随着业务规模增长,原有架构逐渐暴露出三个问题:数据规模持续扩


Java Undertow 实战指南:从轻量 Web Server 到 Spring Boot 嵌入式容器
唐青枫2026/7/27

简介 Undertow 是一个轻量级 Java Web Server。 它可以直接嵌入到 Java 代码里运行,也可以作为 Servlet 容器使用,还曾经是 WildFly 的默认 Web Server。 简单理解: Undertow = 轻量 HTTP Server + Servlet 容器 + WebSocket 支持 它和 Tomcat、Jetty 一样,都可以承载 Java Web 应用。 但 Undertow 的风格更偏底层、更偏嵌入式:一个 HTTP 服务可以由几个 Handle


Kimi k3是真碉,但太不经用,也有拉跨点!
甲维斯2026/7/19

K3 已测,确实强,但要命的是配额太少了! 一天不到,一周的配额已经烧完了,大概就生成了 5 个测试页面! 从五个例子中,可以知道,有些确实很强,有些呢又差点意思,有些比较糟糕。 我不是那种收钱办事儿只会吹牛逼的博主,我也不会针对 Kimi 只说它的缺点。我会依次给大家展现测试结果,同时和其它国产模型,和国外的 GPT 5.6 和 Fable 5 做一个对比,尤其是 Fable 5! 下面我就一点一点来说,看完这篇文章大家应该对K3有一个相对全面的解了。 这篇文章,我要先从这张图片说起:


【中阶·安全】大模型逆向攻击与数据隐私保护深度解析:从模型反演到差分隐私防御的全链路实战
AI智能专家2026/7/10

【中阶·安全】大模型逆向攻击与数据隐私保护深度解析:从模型反演到差分隐私防御的全链路实战 专栏:《AI 工程与安全深度实战》· 第6轮·第2篇 前言 核心痛点:大模型不仅记住了训练数据中的知识——在某些条件下,攻击者可以通过模型输出反推出训练数据中的敏感信息(个人身份、医疗记录、专有代码),这对模型发布方的隐私合规和用户信任构成根本性挑战 适配人群:AI 安全工程师、隐私合规负责人、对模型隐私保护有深度学习需求的 ML 工程师和安全研究员 收获能力:读


暑假CSP-S NOIP集训学生要做哪些内容,集训完如何消化所学的知识
dllglvzhenfeng2026/7/2

暑假是 CSP-S 向 NOIP 进阶的‌黄金窗口期‌,集训核心在于‌体系化构建高阶算法能力‌与‌实战应试策略‌。以下是针对 CSP-S/NOIP 层级学生的集训内容及赛后消化方案: 一、暑假集训核心内容 集训需遵循“理论精讲 + 专项刷题 + 全真模考”闭环,重点突破以下模块: 1、‌高阶算法深度攻坚‌ (1)、‌动态规划(DP)‌:         从线性 DP 延伸至树形 DP、区间 DP、状压 DP 及斜率/四边形优化,重点训练状态设计与转移方程推导 。


Unity之使用火山引擎实现流式语音合成|优化版本
心前阳光2026/6/23

初始版本 Unity之使用火山引擎实现流式语音合成 优化版本 优化内容: 原始版本使用NativeWebSocket插件,无法获取X-Tt-Logid,使用WebSocketSharp插件解决这个问题提取两个插件的共性,可依据需要替换 示例 通信类 websocket通信基类 using UnityEngine; using System; /// <summary> /// 文字转语音 /// </summary> public abstract class BaseTextT


LLM —— 多模态(文本、图片、音频、视频)
kishu_iOS&AI2026/6/15

目录 一、什么是多模态 二、常见模态分类 三、多模态原理 单模态 vs 多模态 四、文本 五、图片 核心原理: 流程:         ① 图像预处理(统一输入格式)         ② 加载预训练视觉编码器         ③ 前向传播,抽取特征向量         ④ 向量归一化(L2 归一化,必做)         ⑤ 持久化存储 方案代码: 关键细节         ① 向量维度怎么选?         ② 相似度计算方式 容易出错点 其他轻量化

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读