git push报错rejected:no-fast-forward

浅浅的花香味﹌ 2023-10-12 22:47 74阅读 0赞

报错:

在这里插入图片描述

报错关键词:

  • 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:

  1. git pull

等价于

  1. git fetch + git merge xxx

但推荐后者。

  1. git pull --rebase

等价于

  1. git fetch + git rebase xxx

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

发表评论

表情:
评论列表 (有 0 条评论,74人围观)

还没有评论,来说两句吧...

相关阅读