如何找出develop分支未合并提交并合并至root分支以解决合并异常?
Git分支未合并提交排查与修复方案
一、找出develop中未同步到root的提交
- 查看所有仅在develop存在的提交:
git log root..develop
输出会包含提交哈希、作者、提交信息,清晰展示哪些提交没合并到root - 精简输出(只看提交哈希和标题):
git log --oneline root..develop
二、确认提交的具体改动
对每个未合并的提交,查看它修改的所有文件:git show <提交哈希>
这样能精准确认该提交的所有变更,避免遗漏文件。
三、合并未同步的变更
方案1:逐个挑选提交合并(适合需要筛选提交的场景)
- 切到root分支:
git checkout root - 拉取最新root代码:
git pull origin root - 对每个要合并的提交执行:
git cherry-pick <提交哈希>- 遇冲突:解决冲突后执行
git cherry-pick --continue - 跳过当前提交:
git cherry-pick --skip - 终止操作:
git cherry-pick --abort
- 遇冲突:解决冲突后执行
方案2:重新执行合并(修复之前的合并遗漏)
如果之前的合并有异常,直接重置后重新合并:
- 切到root分支:
git checkout root - 重置到上次成功合并后的状态(从
git log --oneline root里找对应提交哈希):git reset --hard <上次成功合并的root提交哈希> - 拉取最新root代码:
git pull origin root - 重新合并develop:
git merge develop
这次Git会重新计算所有分支差异,所有变更文件都会被检测到,处理完冲突后提交即可。
四、验证合并结果
合并完成后,执行以下命令确认所有develop提交都已同步:git log develop..root
如果没有任何输出,说明develop的所有提交都已合并到root。
内容的提问来源于stack exchange,提问作者PHI
相关产品推荐
相关产品推荐

