You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git误判新增为修改的合并冲突:需保留双函数

解决Git合并冲突:同时保留两个误判为修改的新增函数

手动解决步骤

因为Git误将两个分支的新增函数操作识别为对同一代码块的修改,导致分段冲突,需手动整理代码:

  • 打开冲突文件,定位所有冲突标记(<<<<<<< HEAD、=======、>>>>>>> origin/master)
  • 拼接完整的func1:
    • 提取HEAD分支下的所有专属代码:第一个<<<<<<< HEAD到=======的func1定义、第二个<<<<<<< HEAD到=======的more stuff (func1)、第三个<<<<<<< HEAD到=======的final stuff (func1)
    • 将这些专属代码与对应的公共代码(冲突标记外的共享内容)按顺序拼接,组成完整的func1
  • 拼接完整的func2:
    • 提取origin/master分支下的所有专属代码:第一个=======到>>>>>>> origin/master的func2定义、第二个=======到>>>>>>> origin/master的different more stuff(func2)、第三个=======对应的different final stuff(func2)
    • 同样将这些专属代码与对应的公共代码按顺序拼接,组成完整的func2
  • 删除所有冲突标记,用空行分隔两个函数以保证可读性
  • 执行命令完成合并:
    git add <你的冲突文件名>
    git commit
    

最终整理后的代码示例

async def func1():
    stuff (func1)

    stuff in common between func1 and func2
    more stuff (func1)

    differrent stuff in common between func1 and func2
    final stuff (func1)

async def func2():
    different stuff (func2)

    stuff in common between func1 and func2
    different more stuff(func2)
    
    differrent stuff in common between func1 and func2
    different final stuff(func2)

补充说明

这种冲突源于两个分支均基于同一原始函数(func0)复制修改出不同函数,Git的文本合并算法无法识别这是新增两个独立函数的操作,因此误判为对同一代码块的修改。手动拼接是最直接可靠的解决方式,若后续频繁出现此类场景,可考虑提前拆分提交(比如先提交新增func1,再在另一分支基于该提交新增func2),避免触发误判冲突。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 09:18:25