You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git推送master分支遭拒:当前分支落后远程该如何解决?

问题解决步骤

核心原因

你本地的master分支提交历史和远程origin/master不一致——你在合并main到本地master前,没有拉取远程master的最新更新,导致本地master的提交不是远程master的直接后续,Git拒绝非快进式推送。而git pull没生效是因为本地master工作区干净,但提交历史和远程分叉了。


方案一:Rebase 保持提交历史线性(推荐用于生产分支)

  1. 切换到本地master分支:
    git checkout master
    
  2. 拉取远程master的最新代码到临时分支temp:
    git fetch origin master:temp
    
  3. 将本地master的变更(你合并main的提交)变基到temp分支上,让本地提交成为远程最新提交的后续:
    git rebase temp master
    
    • 如果遇到冲突,手动解决冲突后,执行git add <冲突文件>,然后继续变基:
      git rebase --continue
      
    • 重复操作直到变基完成
  4. 推送更新后的本地master到远程:
    git push origin master
    
  5. 删除临时分支:
    git branch -d temp
    

方案二:安全强制推送(谨慎使用)

如果你确认远程master的最新变更和你本地合并的内容没有冲突,可以用--force-with-lease安全强制推送(比直接--force更安全,会检查远程是否有未拉取的新提交):

git push origin master --force-with-lease

方案三:合并远程变更(会产生合并提交)

如果不在意提交历史有分叉,可以拉取远程master并合并到本地:

  1. 拉取远程master并合并:
    git pull origin master
    
    • 解决冲突后执行git add <冲突文件>,然后提交合并:
      git commit
      
  2. 推送合并后的本地master到远程:
    git push origin master
    

内容的提问来源于stack exchange,提问作者Dozel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:55:04