误将本地foo分支提交推送到origin/master,如何移至origin/foo?
误推提交到origin/master的修复方案
1. 恢复远程master分支到正确状态
本地master分支状态正常,只需将远程master回滚至误推前的版本:
Magit操作步骤:
- 打开Magit状态页:执行
M-x magit-status - 切换到本地
master分支:在分支列表选中master,按b b确认切换 - 定位误推前的正确提交:查看提交历史,找到远程master原本的最后一个有效commit
- 强制推送回滚:按
P唤起推送菜单,选择--force-with-lease选项,推送到origin/master(该选项比单纯--force更安全,防止覆盖他人未同步的提交)
命令行操作:
git checkout master # 强制推送本地正确的master到远程,恢复状态 git push origin master --force-with-lease
2. 推送foo分支到远程对应位置
远程master恢复后,将本地正确的foo分支推送到origin/foo:
Magit操作步骤:
- 切换到本地
foo分支:按b b选中foo分支切换 - 推送分支:按
P,选择推送当前分支到远程,指定目标分支为origin/foo(若远程无foo分支,Magit会自动创建)
命令行操作:
git checkout foo # 推送本地foo到远程,-u参数用于关联本地与远程分支,后续可直接git push/pull git push -u origin foo
关键提醒
- 执行强制推送前,务必确认没有其他开发者向
origin/master提交过新代码,否则会覆盖他人修改。若存在此类情况,需先和团队协调处理。
内容的提问来源于stack exchange,提问作者rorance_
相关产品推荐
相关产品推荐

