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

执行git push时出现报错,但远程仓库显示推送已成功

问题原因与解决办法

为什么会出现这个情况

你执行git push时,Git采用了旧版默认的matching推送模式——这个模式会推送所有本地与远程同名的分支。这次操作中:

  • 你的ak-tinkering分支和远程分支同步正常,成功推送(所以远程仓库能看到该分支的更新)
  • 但本地master分支的提交进度落后于远程master分支(也就是提示里的non-fast-forward),Git拒绝直接推送这个分支,因此出现“无法推送某些refs”的错误。

错误提示的含义拆解

  • ! [rejected] master -> master (non-fast-forward):本地master分支的最新提交早于远程master的提交,直接推送会覆盖远程的更新,Git出于安全考虑拒绝了这个操作。
  • 开头的push.default警告:Git 2.0之后将默认推送模式从matching改为simple,simple模式只会推送当前所在的分支,能避免这种“部分分支成功、部分失败”的问题,所以提示你配置该选项。

解决步骤

1. 修复默认推送模式(推荐)

执行以下命令,将默认推送模式设为simple,以后git push只会推送当前分支:

git config --global push.default simple

2. 如果需要推送master分支

如果确实要更新远程master,先拉取远程的最新更新合并到本地,再推送:

# 切换到master分支
git checkout master
# 拉取远程master的更新并合并
git pull origin master
# 若合并时出现冲突,手动解决冲突后提交
git add .
git commit -m "解决合并冲突"
# 推送本地master到远程
git push origin master

3. 若不需要推送master分支

只需完成步骤1的配置,以后执行git push时只会推送当前所在的分支(比如你之前的ak-tinkering),不会再尝试推送master,也就不会出现这个错误。

内容的提问来源于stack exchange,提问作者dapple-putt-poultry

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:35:22