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
相关产品推荐
相关产品推荐

