git push报错rejected:no-fast-forward

报错:

在这里插入图片描述

报错关键词:

  • non-fast-forward
  • your current branch is behind
  • the remote changes

即:不能快速前进、当前分支滞后、远端改变


原因:

这个分支下,别人提交了一些代码到远程仓库。对于这个改变,你没有拉取到本地,而你又添加了一下新代码。此时你push到远程仓库,检测到你之前从远程仓库拉取时仓库的状态,和现在仓库的状态不一样了。为了安全起见,push被拒绝。

报错中其实已经说明逻辑:the remote changes ⇒ your current branch is behind ⇒ non-fast-forward ⇒ push rejected


解决:
  • 抓取这个分支在远程仓库的更新到本地
git fetch origin Feature-9527
  • 与本地仓库合并
git merge origin FETCH_HEAD
  • 重定基,使提交历史趋于一条直线
git rebase origin FETCH_HEAD
  • 重新push即可成功
git push

在这里插入图片描述


Tip:
git pull 

等价于

git fetch + git merge xxx

但推荐后者。

git pull --rebase

等价于

git fetch + git rebase xxx

最后,push被拒绝时,看看问题,多半都是远程仓库改变了,而你没拉取更新且新加了代码。别上手就git push -f 或者git push --force。远程仓库被覆盖就尬住了

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-代号9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值