当前位置:   article > 正文

git push报错rejected:no-fast-forward_! [rejected] srf-5935 -> srf-5935 (non-fast-forwar

! [rejected] srf-5935 -> srf-5935 (non-fast-forward) error: failed to push s

报错:

在这里插入图片描述

报错关键词:

  • 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
  • 1
  • 与本地仓库合并
git merge origin FETCH_HEAD
  • 1
  • 重定基,使提交历史趋于一条直线
git rebase origin FETCH_HEAD
  • 1
  • 重新push即可成功
git push
  • 1

在这里插入图片描述


Tip:
git pull 
  • 1

等价于

git fetch + git merge xxx
  • 1

但推荐后者。

git pull --rebase
  • 1

等价于

git fetch + git rebase xxx
  • 1

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/533091
推荐阅读
相关标签
  

闽ICP备14008679号