Git变基后本地feature分支与远程分歧,推送拉取失败如何解决?
Git变基后推送失败的解决方法
问题原因
你遇到的是变基后的典型现象:本地feature/123分支经git rebase master后,提交历史被重写——原来基于旧版master的提交被重新应用到最新master上,生成了全新的提交对象。但远程feature/123仍保留旧提交历史,Git检测到本地与远程分支历史分叉,因此标记本地“落后1个、超前2个”提交,同时拒绝普通push和pull操作。
解决步骤
- 确保本地
master分支为最新状态:git checkout master git pull - 切换回
feature/123分支,重新执行变基(无冲突时会自动完成):git checkout feature/123 git rebase master - 强制推送到远程分支(
--force-with-lease比--force更安全,可避免意外覆盖他人提交):git push --force-with-lease origin feature/123
注意事项
- 若
feature/123仅你一人使用,直接执行上述操作即可; - 若有其他协作者在该分支工作,需提前告知分支历史已改写,让他们执行以下操作同步本地分支:
git checkout feature/123 git pull --rebase
内容的提问来源于stack exchange,提问作者Kashyap
相关产品推荐
相关产品推荐

