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

Git子模块合并冲突如何查看差异并保留自有分支提交?

解决Git父仓库合并时的子模块冲突问题

查看子模块冲突的差异

要确认冲突双方的子模块提交UUID,用以下两种方法:

  • 直接查看子模块版本差异:
    git diff --submodule
    
    输出会明确显示冲突的两个版本——一方是你朋友main分支的最新提交(对方版本),另一方是你子模块分支的最新提交(你的版本)。
  • 查看暂存区记录确认版本:
    git ls-files --stage | grep <子模块目录名>
    
    结果会列出两条对应合并父版本的子模块提交ID,你可以结合本地分支记录区分哪条是对方的、哪条是你自己的。

解决冲突并保留你的子模块分支版本

按以下步骤操作,确保继续使用你子模块分支的最新提交:

  1. 同步你的子模块分支(如果本地未更新):
    cd <子模块目录名>
    git checkout <你的子模块分支名>
    git pull
    cd ..
    
  2. 在父仓库中确认子模块版本:
    git add <子模块目录名>
    
    这一步会把父仓库里的子模块引用,设置为你当前子模块目录的最新提交(即你的分支版本)。
  3. 验证冲突状态:
    git status
    
    此时子模块目录旁的"both modified"标记应该消失。
  4. 完成合并提交:
    git commit
    
    Git会自动生成包含子模块版本更新的合并信息,你可以按需调整后保存。
  5. 推送父仓库的合并结果:
    git push
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 17:16:59