Git 合并冲突怎么解决提示词(逐块分析双方改动意图,给出合并结果与验证步骤)
merge 或 rebase 时冲突了,冲突块又多又看不懂、不敢随便选一边时用:把冲突内容和双方的提交信息贴给 AI,让它先弄清两边各自想改什么,再给出保留双方意图的合并结果,并提示要跑哪些测试确认没合坏。
通用大模型 对话模型通用
我在合并代码时遇到冲突,请帮我分析并解决。 - 操作:[操作](可选:merge/rebase/cherry-pick) - 当前分支与合入分支:[当前分支与合入分支](例:当前 feature/coupon,合入 main) - 冲突文件和冲突内容(包含冲突标记的原文): [粘贴冲突内容] - 双方相关的提交信息(可以用 git log 查到): [粘贴提交信息] - 我对两边改动的了解:[如我改了折扣计算,同事加了会员等级] 请这样处理: 1. 先说明冲突标记中「当前一侧」和「合入一侧」分别是谁。注意:rebase 时这两侧的含义和 merge 相反,请按我的操作类型说明。 2. 对每个冲突块分别分析: - 一侧改了什么、意图是什么; - 另一侧改了什么、意图是什么; - 两者是否真正矛盾:只是改了相邻的行(可以都保留)、改了同一逻辑的不同方面(需要融合)、还是互相冲突的需求(需要我决定)。 3. 给出合并后的代码。需要融合时,说明融合后的逻辑同时满足了双方的哪些意图。真正冲突、无法替我决定的,列出选项让我选,不要擅自决定。 4. 检查冲突区域之外的隐性冲突:比如一方重命名了函数、另一方新增了对旧函数名的调用;一方改了函数参数,另一方在别处按旧参数调用。这些不会产生冲突标记,但合并后会出错。 5. 给出解决后的操作命令(标记解决、继续 rebase 或完成合并),以及合并后应该运行的测试或检查。 6. 如果冲突过于复杂,告诉我如何安全地放弃这次合并回到合并前的状态。
高亮处换成你自己的内容:[操作]、[当前分支与合入分支]、[粘贴冲突内容]、[粘贴提交信息]、[如我改了折扣计算,同事加了会员等级]
ChatGPT Plus 充值
已被复制 0 次
使用说明
怎么填变量:冲突内容要包含完整的冲突标记和上下文,最好把整个冲突文件贴上。双方的提交信息非常重要,AI 靠它理解「为什么改」,否则只能根据代码猜。
常见坑:
- rebase 时,冲突标记里的「当前」一侧其实是你要合入的上游分支,你自己的改动在另一侧,和 merge 正好相反。很多人在 rebase 时选错了一边,把自己的改动丢掉了。
- 只解决有冲突标记的地方,忽略了隐性冲突。合并完能编译不代表逻辑正确,一定要跑测试。
- 遇到看不懂的冲突就直接选「全部用我的」,悄悄覆盖了同事的修复。拿不准时问对方。
追问技巧:解决完后,把 git diff 的结果贴回去,问「检查合并结果是否同时保留了双方的改动,有没有遗漏」。
示例输出
示例,仅供参考(merge,当前分支 feature/coupon,合入 main)
冲突块 1:calcPrice()
- 当前一侧(feature/coupon,你的改动):在折扣计算中加入优惠券抵扣;
- 合入一侧(main,同事的改动):把会员折扣从固定 9 折改为按会员等级取折扣率;
- 判断:改了同一逻辑的不同方面,需要融合。
js
function calcPrice(order, user, coupon) {
const rate = memberRate(user.level) // 来自 main:按等级取折扣
const discounted = order.total * rate
return Math.max(0, discounted - (coupon?.amount ?? 0)) // 来自你的分支:优惠券抵扣
}
需要你决定:优惠券应该在会员折扣之前还是之后抵扣?两种顺序的最终金额不同。
隐性冲突:main 把 getMemberDiscount() 改名为 memberRate(),你的分支在 cart.js 中仍调用旧函数名,合并后会报错。
bash
git add src/price.js src/cart.js
npm test # 提交前先确认测试通过
git commit # 完成合并
如果在提交之前想放弃这次合并、回到合并前的状态:git merge --abort。
同款作品
用这条提示词做出来的作品;原作者会因此获得积分
还没有同款,来做第一个。


0 条评论
还没有评论,来抢沙发~