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

运行git push -u origin master提示master->master被拒报错如何解决

报错核心原因

执行git push -u origin master时出现非快进推送拒绝,本质是远程master分支存在本地分支没有的提交(通常是其他协作者先向该分支推送了新内容),Git默认阻止这类推送,避免直接覆盖远程已有提交造成代码丢失。
对应报错关键信息:

! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://bitbucket.org/abyss_monarch/git-test.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
常规处理步骤(多人协作场景推荐)

这个方案会保留所有提交轨迹,不会改写历史,适合公共协作分支:

  • 拉取远程分支最新内容并自动合并到本地分支:
    git pull origin master
  • 处理合并冲突(如果出现):
    命令执行后如果提示文件冲突,打开对应冲突文件,手动取舍代码,删除文件中自动生成的<<<<<<<、=======、>>>>>>>冲突标记,确认代码逻辑正确后,依次执行:
    git add <处理完的冲突文件路径>
    git commit -m "merge remote changes"
  • 重新推送:
    合并完成无报错后,重新执行原推送命令即可:
    git push -u origin master
整洁提交历史方案(个人分支适用)

如果不想生成额外的合并提交、想要保持线性提交历史,可以用rebase模式拉取变更,注意不要在多人共用的公共分支用这个方案,否则会改写提交历史给其他协作者造成困扰:

  • 拉取远程变更并将本地提交追加到远程最新提交之后:
    git pull --rebase origin master
  • 处理rebase冲突(如果出现):
    出现冲突时和前述步骤一样手动解决冲突,标记解决后不需要执行commit,直接执行:
    git add <处理完的冲突文件路径>
    git rebase --continue
    重复这个步骤直到rebase流程走完
  • 重新执行推送命令即可
操作注意事项
  • 严禁未确认远程内容就直接加--force参数强制推送,强推会直接覆盖远程分支的所有已有提交,很容易造成其他协作者的代码永久丢失
  • 拉取远程变更前建议先执行git status检查本地工作区,如果有未提交的零散修改,可以先执行git stash临时暂存修改,等pull/rebase操作完成后再执行git stash pop恢复修改,减少不必要的冲突
  • 如果执行pull后提示分支关联配置异常,可以先执行git branch --set-upstream-to=origin/master master完成本地分支和远程分支的关联,再重新拉取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 23:57:18