Git Rebase异常:分支最新提交未在冲突解决中显示
Git Rebase冲突时后续提交变更不可见的问题处理
问题详情
在Networkconfigs分支执行git rebase master时,仅在提交C1(哈希5243f782f)上出现冲突。冲突解决阶段看不到C2的变更:C1提交新增了Sample.txt,C2提交将其替换为Result.txt,但冲突解决时工作区显示的是Sample.txt,切换回原分支时Result.txt又存在。
使用的命令及分支日志:
# 执行rebase的命令 git rebase master # NetworkConfigFiles分支的最近5条日志 git log -5 --graph --oneline NetworkConfigFiles * df3acf356 (origin/NetworkConfigFiles, NetworkConfigFiles) additional changes * d7bb7a5dc Incorporate the review comments * 5243f782f create Network config files * fb372f921 Incrementing build version to 2.0.2495.0 ***NO_CI*** * 89ce8a232 Incrementing build version to 2.0.2494.0 ***NO_CI***
原因分析
这是Git rebase的正常流程:rebase会把当前分支的提交逐个"重演"到目标分支(master)的顶端。当处理到C1出现冲突时,rebase会暂停,此时C2还未被应用到工作区,所以你只能看到C1的状态(Sample.txt存在),而非C2替换后的结果。
解决步骤
- 解决C1的冲突:编辑冲突的
Sample.txt文件,处理内容或代码冲突。 - 标记冲突已解决:执行
git add Sample.txt,将解决后的文件暂存。 - 继续rebase流程:执行
git rebase --continue,此时Git会自动应用C2提交,将Sample.txt替换为Result.txt。 - 验证结果:完成rebase后,检查工作区,确认
Result.txt存在且C2的变更已生效。
如果应用C2时也出现冲突,重复上述步骤:解决冲突→add→continue即可。
内容的提问来源于stack exchange,提问作者Sravani
相关产品推荐
相关产品推荐

