Git子模块合并冲突如何查看差异并保留自有分支提交?
解决Git父仓库合并时的子模块冲突问题
查看子模块冲突的差异
要确认冲突双方的子模块提交UUID,用以下两种方法:
- 直接查看子模块版本差异:
输出会明确显示冲突的两个版本——一方是你朋友main分支的最新提交(对方版本),另一方是你子模块分支的最新提交(你的版本)。git diff --submodule - 查看暂存区记录确认版本:
结果会列出两条对应合并父版本的子模块提交ID,你可以结合本地分支记录区分哪条是对方的、哪条是你自己的。git ls-files --stage | grep <子模块目录名>
解决冲突并保留你的子模块分支版本
按以下步骤操作,确保继续使用你子模块分支的最新提交:
- 同步你的子模块分支(如果本地未更新):
cd <子模块目录名> git checkout <你的子模块分支名> git pull cd .. - 在父仓库中确认子模块版本:
这一步会把父仓库里的子模块引用,设置为你当前子模块目录的最新提交(即你的分支版本)。git add <子模块目录名> - 验证冲突状态:
此时子模块目录旁的"both modified"标记应该消失。git status - 完成合并提交:
Git会自动生成包含子模块版本更新的合并信息,你可以按需调整后保存。git commit - 推送父仓库的合并结果:
git push
内容的提问来源于stack exchange,提问作者Baz
相关产品推荐
相关产品推荐

