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

Rebase本地分支后Git Push被拒,正确操作流程是什么?

问题解决:Rebase后推送分支遇到non-fast-forward错误

为什么会报错?

你对本地分支feature/b执行了rebase操作,这会改写分支的提交历史——远程仓库里的feature/b还是你rebase前的旧提交链,而本地分支已经是基于最新develop的新提交链,两者提交历史不连续,Git默认拒绝这种非快进式推送,所以抛出该错误。

能不能用--force强制推送?

分场景判断:

  • 如果feature/b是你个人独用的特性分支,没有其他开发者在上面提交代码,且尚未合并到主分支,那强制推送是完全合理的操作。
  • 但别直接用--force,换成--force-with-lease更安全。--force会粗暴覆盖远程分支,万一你拉取develop后,有人偷偷往远程feature/b提交了代码,--force会直接抹掉他们的工作;而--force-with-lease会先校验远程分支状态,只有当远程分支和你上次拉取的版本一致时才会推送,能避免误删他人提交。

正确操作步骤

  1. 确保当前处于目标分支:
git checkout feature/b
  1. 执行安全的强制推送:
git push --force-with-lease origin feature/b

红线提醒

如果feature/b是多人协作的分支,绝对不能强制推送——这会破坏所有人的提交历史。这种场景下,你应该放弃rebase,改用git merge develop合并远程变更后再正常推送。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:35:27