解决Git dev分支PR合并后始终落后master 1个提交的问题
解决PR合并后dev分支始终落后master一个合并提交的问题
问题原因
你遇到的情况是PR合并方式和之前的变基操作共同导致的:
- 直接向master推送修复并将dev变基到master后,两者提交历史是线性对齐的。
- 但后续PR合并时,GitHub默认会创建合并提交(仅记录合并操作、无代码变更),这会让master多一个提交记录,而dev分支没有这个合并提交,因此每次合并后都会显示落后1个提交。
解决方案
方案1:长期规避(修改PR合并方式)
后续提交PR时,改用「变基合并」或「压缩合并」,避免生成多余的合并提交:
- 在GitHub的PR页面,合并选项选择「Rebase and merge」(将dev的提交线性追加到master之后),或「Squash and merge」(将dev的多个提交合并为一个后追加到master)。
- 合并完成后,在本地同步dev分支:
这样dev和master的提交历史会完全对齐,不会再出现落后情况。git checkout dev git pull --rebase origin master git push origin dev
方案2:一次性修复当前分支历史
如果当前dev已经落后master一个合并提交,执行以下步骤对齐分支:
- 拉取最新的master分支:
git checkout master git pull origin master - 切换到dev分支,变基到master(变基会跳过无代码变更的合并提交,将dev的提交重新应用到master最新提交之后):
git checkout dev git rebase master若变基时出现冲突,解决冲突后执行
git rebase --continue即可。 - 安全强制推送更新后的dev分支(避免覆盖他人修改):
git push origin dev --force-with-lease
内容的提问来源于stack exchange,提问作者Rico Codes
相关产品推荐
相关产品推荐

