如何将master分支更新至变基后的feature分支位置?
把本地master分支移到feature分支的位置
这事儿其实挺简单的,看你是只操作本地分支,还是需要同步到远程仓库,分两种情况来:
仅本地操作的情况
从你的提交图示来看,master分支停在B节点,feature已经走到D节点,而且master在B之后没有任何新提交,那用下面两种方法都可以:
方法一:先切换到master再重置
- 切换到master分支:
git checkout master - 强制把master重置到feature的位置:
git reset --hard feature
这个命令会让master的HEAD直接跳到feature当前的提交,同时工作区和暂存区也会同步成feature的状态。
- 切换到master分支:
方法二:直接修改master的指向(不用切换分支)
如果你不想来回切换分支,直接在当前分支(比如feature)里运行这个命令就行:git branch -f master feature
这个命令会强制让master分支指向feature当前所在的提交节点,一步到位。
已经推送到远程仓库的情况
如果你之前已经把master分支推送到远程(比如GitHub、GitLab),那修改完本地master之后,需要强制推送到远程:git push origin master --force
⚠️ 重要提醒:强制推送会改写远程master的历史记录!如果有其他团队成员已经基于旧的master做了开发,这会导致他们的本地分支和远程冲突。一定要提前和团队沟通好,让大家先把自己的修改合并或备份好,再执行这个操作。
内容的提问来源于stack exchange,提问作者peer
相关产品推荐
相关产品推荐

