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

Git变基时双方向同一列表新增项的冲突自动解决方法

如何自动解决Git变基中向同一列表添加项的冲突

场景说明

原始代码中的趣味项列表:

interesting items = [
    "apple",
    "potato",
]
  • Feature A 分支需向列表添加tomatoes,修改如下:

    interesting items = [
        "apple",
        "potato",
    +    "tomatoes",
    ]
    
  • Feature B 分支需向列表添加tortillas,修改如下:

    interesting items = [
        "apple",
        "potato",
    +    "tortillas",
    ]
    

当Feature A 合并至main分支后,将Feature B 变基到main分支时,会出现如下冲突:

interesting items = [
    "apple",
    "potato",
++<<<<<<< HEAD
 +    "tomatoes",
++||||||| parent of B
++=======
+     "tortillas",
++>>>>>>> B
]

我们需要将冲突自动解决为包含两个新增项的最终版本:

interesting items = [
    "apple",
    "potato",
    "tomatoes",
    "tortillas",
]

自动解决方法

Git提供了可以同时保留本地与远程新增行的解决方案,针对这类列表末尾添加项的冲突,最简便的方式是使用**union合并策略选项**:

方式一:变基时直接指定策略

在启动变基命令时,添加-X union参数,Git会自动合并双方的新增内容:

git rebase main -X union

方式二:冲突出现后补用策略

如果已经触发冲突并暂停在变基过程中,可执行以下命令继续并应用union策略:

git rebase --continue --strategy-option union

手动处理单个文件(可选)

若仅需针对单个冲突文件处理,可使用git merge-file命令的union模式:

# 替换为你的文件路径
git merge-file --union your_file.py .git/rebase/merge/ours/your_file.py .git/rebase/merge/theirs/your_file.py
# 标记文件已解决
git add your_file.py
# 继续变基
git rebase --continue

注意事项

  • union策略会保留双方所有新增的行,适合无顺序要求的列表场景;若列表项有特定顺序要求,需后续手动调整。
  • 该策略仅适用于行级文本冲突,对于复杂的代码结构冲突仍需手动介入解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:35:01