Git仓库分支整理:如何将origin/master移至最新提交?
Git分支修正操作指南
先备份,再动手
首先给当前在Z节点的master分支做个备份,防止操作失误丢失代码:
git branch master-backup-z
将本地master回退到X节点
切换到master分支,硬重置到X节点:
git checkout master git reset --hard X # 把X替换成对应的提交哈希、标签或者能准确定位X的引用
让master跟进最新提交(top节点)
用rebase把X之后的主线提交(从X的下一个提交到top)整合到master上,保证历史线性:
git rebase --onto master X^ top # 说明:--onto 指定目标基准(当前master,即X节点),X^ 是X的父提交,top是你要跟进的最新提交节点 # 如果top所在的分支有明确名称(比如main),可以简化成:git rebase main
如果rebase过程中遇到冲突,解决冲突后执行git add .,再运行git rebase --continue直到完成。
同步到远程仓库
因为修改了master的历史,需要强制推送到远程(注意:如果有其他同事在用这个远程分支,一定要提前沟通好!):
git push origin master --force-with-lease # --force-with-lease比直接--force更安全,能避免误覆盖别人刚推送的提交
如果其他开发者已经拉取过旧的master分支(Z节点),他们需要执行以下命令同步:
git fetch origin git reset --hard origin/master
内容的提问来源于stack exchange,提问作者jabroni
相关产品推荐
相关产品推荐

