本地git push出现reject拒绝推送,提交失败
问题描述
当我在本地push推送最新代码到远程仓库时,出现如下错误 或者出现如下错误 即出现fetch first或者non-fast-forward信息,提示reject信息,拒绝此次push请求。push失败。
分析原因
上述push失败的情况,是因为我们在push提交代码的时候,远程仓库已经发生变化了,换句话说就是在这个期间(上一次拉取代码到本次提交代码),有其他人在我们之前提交了代码到我们想要推送的分支,导致远程仓库代码更新变化了。所以git拒绝了本次push。
解决
因为远程仓库在拉取代码时和提交代码时内容不一致,出现冲突,导致提交失败。 解决方法:
1.先抓取远程仓库的更新到本地;
2.然后与本地仓库合并(如果有冲突就要解决冲突后再合并);
注:此操作不会改变远程仓库,只是将远程仓库变化更新到本地仓库。
3.这样就使远程仓库和本地仓库一致了,然后就可以提交修改了。然后再将本地代码提交push到远程仓库。
具体操作: (dev为远程仓库分支,目前本地所在分支也为dev)
1.git fetch origin dev 将远程仓库拉到本地
2.git merge FETCH_HEAD 合并,解决冲突
3.git push origin dev 将本地代码提交push到远程dev分支
写在最后
上述1和2步骤可以使用git pull origin dev,即
git pull origin dev = git fetch origin dev + git merge FETCH_HEAD 一般推荐使用1和2步骤
|