如何将基于旧版本的本地feature分支同步至最新版本?
问题场景
- 本地分支feature2基于feature1(v1)创建,从未推送至远程
- 远程feature1已更新至v2,执行
git fetch和merge后,本地feature1也同步为v2版本 - 需求:将已做过修改的feature2同步至v2版本
解决方法
有两种常用方式,根据需求选择:
方式一:合并(Merge)
适合希望保留原有分支提交历史的场景:
- 切换到feature2分支:
git checkout feature2 # 或者用较新的命令:git switch feature2 - 将feature1的v2版本合并到feature2:
git merge feature1 - 若出现冲突,手动修改冲突文件,然后执行:
完成合并后,feature2就同步到v2版本了。git add . git commit
方式二:变基(Rebase)
适合希望提交历史更线性整洁的场景(注意:仅在feature2未推送至远程时使用,避免影响协作):
- 切换到feature2分支:
git checkout feature2 - 基于feature1的v2版本进行变基:
git rebase feature1 - 若遇到冲突:
- 手动解决冲突后,执行
git add . - 继续变基:
git rebase --continue - 若想跳过当前提交:
git rebase --skip - 若要放弃变基回到原状态:
git rebase --abort
- 手动解决冲突后,执行
变基完成后,feature2的所有提交会被移到feature1 v2的提交之后,实现版本同步。
内容的提问来源于stack exchange,提问作者user2761895
相关产品推荐
相关产品推荐

