Codex Agent自动解决Git冲突后为什么测试能过,业务逻辑却丢了?
使用 ChatGPT、Codex Agent 做合并、Rebase 或处理多人协作代码时经常会遇到一种非常隐蔽的问题Git冲突看起来已经解决了测试也全部通过但上线以后才发现一段原本应该保留的业务逻辑没了。常见表现包括Agent处理冲突后Git不再报错merge或rebase顺利完成单元测试、Build都正常但某个新加的判断条件被覆盖另一个分支刚加的异常处理消失接口参数退回旧版本页面还能跑业务行为却已经变了。这类问题最危险的地方就在于Git认为冲突已经解决不代表业务冲突真的解决了。一、Git冲突本质上只是“文本冲突”假设两个分支同时修改了同一个函数。分支A增加VIP用户走新的折扣逻辑。分支B增加库存不足时禁止继续下单。Git看到两边都改了相同区域于是产生冲突。但Git不知道这两个逻辑其实都应该保留。它只知道同一段文本被不同分支修改了。所以真正需要解决的不是选A还是选B。而是合并以后最终业务逻辑应该是什么。二、最危险的是机械选择ours或theirs处理冲突时经常会看到ours和theirs如果 Codex Agent 为了快速完成任务直接选择其中一边冲突确实马上消失。但另一边的修改可能也一起被丢掉。例如A分支增加权限判断。B分支增加缓存失效逻辑。如果直接保留A版本就可能把B的缓存逻辑覆盖。Git会告诉你Conflict resolved.但真实结果可能是一段刚开发好的功能没了。三、为什么测试还能通过这是很多人最容易困惑的地方。因为测试覆盖的并不一定是两个分支合并后的全部业务语义。比如现有测试只检查接口能返回正常用户能下单Build没有报错。但刚刚被冲掉的逻辑可能是特殊权限异常状态边界条件某种配置开关某个新业务分支。只要测试没覆盖到整个测试集依然可能全部绿色。所以测试通过只能证明被测试到的行为正常。不能证明冲突两边的意图都完整保留了。四、解决冲突前先看“两边分别想做什么”这是 Codex Agent 处理冲突时最应该做的一步。不要直接盯着冲突标记而应该先分别看当前分支为什么改这里另一分支又为什么改这里例如当前分支是在修订单重复提交。另一个分支是在加新的优惠计算。那最终代码就应该同时满足防重复提交 新优惠规则。这才是真正的冲突解决。五、冲突解决后要看“语义Diff”很多人解决冲突以后只做git status看到All conflicts fixed.就结束了。其实还应该继续检查合并前后到底少了什么。重点看条件判断有没有丢新增参数有没有退回旧版本异常分支有没有消失配置读取有没有被覆盖新增日志、校验、权限有没有保留。这比只看“文件有没有冲突”更重要。六、配置文件冲突尤其容易被低估业务代码冲突通常比较显眼。但像这些文件YAMLJSONENV模板CI配置路由配置Feature Flag如果 Agent 直接选一边问题可能更隐蔽。例如一个分支新增新服务地址。另一个分支修改超时时间。最终如果只保留其中一份配置看起来文件完全合法但另一项配置已经被覆盖。所以配置冲突不能只检查语法对不对。还要检查两边新增的配置项是不是都保留了。七、函数签名变化也特别危险比如一个分支把函数改成createOrder(userId, couponId)另一个分支仍然使用createOrder(userId)冲突解决时如果 Agent 恢复成旧签名部分调用可能仍然能跑。但新业务参数已经被丢掉。类似的问题还包括DTO字段变化API参数返回结构枚举值Feature参数。这些都不是普通文本变化。而是接口契约变化。八、最好补一个“冲突专项验证”处理完Git冲突以后不要只重新跑原来的测试。还应该问这次冲突的两边各自想实现什么然后针对两边分别验证。例如冲突涉及权限判断 新订单状态。那至少应该验证权限规则仍然有效新状态仍然可以正常流转两者组合场景也没问题。这类测试才真正针对冲突解决是否正确。九、Agent处理冲突时应该设置停止条件如果遇到这种情况两边都改了核心业务判断两边都修改了同一个接口协议无法判断哪个行为是最新需求冲突涉及数据库Migration涉及权限、计费、状态流转等关键逻辑Codex Agent就不应该直接“猜一个”。更稳的做法是停止自动合并说明两边差异再让开发者确认业务意图。Agent最危险的不是不会合并。而是不知道的时候仍然继续做决定。十、可以直接这样约束ChatGPT、Codex Agent以后让 ChatGPT、Codex Agent 自动解决Git冲突可以直接要求遇到Git冲突时不要机械使用ours或theirs。先分别说明两个分支在冲突区域各自修改了什么业务逻辑再给出需要同时保留的行为。解决后检查最终Diff确认两边新增的判断、参数、配置和异常处理是否仍然存在。如果无法确定业务优先级停止自动处理并明确列出冲突点。完成后针对冲突双方的原始需求分别做验证不要只以Build或现有测试通过作为完成标准。这个约束能明显减少“Git冲突没了但业务逻辑也没了。”最后Codex Agent自动解决Git冲突以后测试能过业务逻辑却丢了真正的问题通常不是Git合并失败。恰恰相反。Git层面可能已经完全成功。真正失败的是Agent只解决了文本冲突却没有解决业务语义冲突。更稳定的流程应该是理解两边意图 → 合并业务逻辑 → 检查最终Diff → 分别验证两边需求 → 无法判断时停止。所以以后看到All conflicts fixedtests passed。还不能马上结束。最好再确认一句两个分支原本想保留的业务行为现在是不是都还在持续更新 ChatGPT、Codex、AI Agent 与大模型开发工作流实战内容更多深度内容和稳定订阅渠道欢迎搜索关注「孤狼GPT」。

相关新闻

OpenAI SDK 调用 DeepSeek API 的兼容性配置与改造要点

OpenAI SDK 调用 DeepSeek API 的兼容性配置与改造要点

OpenAI SDK 调用 DeepSeek API 的兼容性配置与改造要点 对于已经使用 OpenAI SDK 的团队,将 baseurl 和 apikey 切换到 DeepSeek 看似只需改两行配置,但实际迁移中可能遇到参数被静默忽略、流式返回结构不一致、token 统计字段缺失等问题。本文从兼容性边…

2026/10/5 8:53:43 阅读更多 →
VueUse useArrayUnique 实战指南:Vue 3 响应式数组去重的完整实现与用法

VueUse useArrayUnique 实战指南:Vue 3 响应式数组去重的完整实现与用法

前端 【免费下载链接】vueuse Collection of essential Vue Composition Utilities for Vue 3 项目地址: https://gitcode.com/gh_mirrors/vu/vueuse 点击查看 免费下载 导读 useArrayUnique 是 VueUse 中用于处理响应式数组去重的核心组合式函数,它基…

2026/10/5 8:53:43 阅读更多 →
AODV路由协议在OPNET中的仿真建模与参数调优全攻略

AODV路由协议在OPNET中的仿真建模与参数调优全攻略

简介:OPNET中实现AODV路由协议的完整建模资源,面向移动自组网研究者、网络仿真开发人员以及需要评估路由性能的师生。内容围绕AODV从路由发现、路由传播到路由建立与维护这一完整机制展开,提供了可导入OPNET的仿真工程、NIST节点场景、无线局…

2026/10/5 8:53:43 阅读更多 →

最新新闻

Google AX 开源:用声明式 YAML 编排十亿级 AI Agent 任务

Google AX 开源:用声明式 YAML 编排十亿级 AI Agent 任务

1. 从“一天一个开源项目”聊起:为什么 AX 值得单独写一篇做 Agent 开发这两年,我最大的感受就是:写一个能跑的 Agent 不难,难的是让一千个、一万个甚至更多 Agent 稳定地跑起来、跑对、跑完还能查账。单机跑个 ReAct 循环&#x…

2026/10/5 9:22:54 阅读更多 →
AX 声明式编排:用 YAML 搞定多 Agent 协同与调度

AX 声明式编排:用 YAML 搞定多 Agent 协同与调度

1. 从“手搓 Agent”到“声明式编排”:AX 到底想解决什么问题如果你最近半年在折腾 AI Agent,大概率经历过这样一个阶段:一开始写个 ReAct 循环,调几个工具,跑个 demo 觉得“就这?”。然后业务稍微复杂一点…

2026/10/5 9:22:54 阅读更多 →
DeepSeek中小企业实战落地指南:从技术选型到场景部署

DeepSeek中小企业实战落地指南:从技术选型到场景部署

简介:面向中小型企业数字化转型与AI落地需求的DeepSeek实战指南,适合想要将大模型技术应用于客户服务、市场营销、供应链与财务管理等业务场景的技术人员和管理者。文档基于实际业务视角,覆盖从技术原理、开发环境搭建到智能客服、精准营销、…

2026/10/5 9:22:54 阅读更多 →
护网面试题备考指南:考点分布与闭环复习方法

护网面试题备考指南:考点分布与闭环复习方法

简介:这份合集收录了一百多套HW(护网)与安全岗位面试题,覆盖天融信、漏洞盒子、长亭、安恒、奇安信、360、阿里等十余家知名一线厂商的真实面试内容。既有HW初级、中级面试题和2023护网面试题,也有近一百份面向安全服务…

2026/10/5 9:22:54 阅读更多 →
Cartographer源码安装与官网数据集实测:从依赖编译到跑通2D SLAM

Cartographer源码安装与官网数据集实测:从依赖编译到跑通2D SLAM

Cartographer 这套系统我断断续续折腾过好多次,从最开始在 Ubuntu 16.04 上被依赖坑到怀疑人生,到后来在 Noetic 上一条命令跑通,中间攒了不少经验。如果你正卡在“安装”这一步,或者刚装完不知道拿什么验证效果,这篇就…

2026/10/5 9:22:54 阅读更多 →
无线网络安全实验全流程:从抓包到防御的完整复现指南

无线网络安全实验全流程:从抓包到防御的完整复现指南

简介:这份《无线网络安全实验》PDF 面向信息安全、网络工程等专业的学生与实验指导教师,对应《信息系统安全技术及应用》课程中的「无线网络安全性研究与实践」实验项目,可用于课程实验报告撰写、实验流程复盘与安全技术入门练习。资源包内共…

2026/10/5 9:21:54 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →