浏览器标题切换
浏览器标题切换end

Intern Day110 - git把本地分支push到远程服务器时报错"Updates were rejected because the tip of your current branch is behind"

在本地develop下开发完成后,经过add、commit等操作后,当走到最后一步pull操作的时候,产生了如下错误:

出现问题的原因

当我从远程服务器上拉取develop分支下的代码,在本地进行修改。

然后,在我clone之后,此时A同事也做了和我同样的操作,并且提交了修改到develop上。

这个时候,我的开发任务结束了,想要把代码后合并到远程服务的develop分支上,就会产生如上图所示错误。

概括来说,就是:不同的开发人员在没有约定的前提下,先后对同一份代码进行了修改提交,从而会在某些操作中产生冲突,所以报了错。

解决办法一(尽量不要用这种)

如果已经把所有的代码进行了add 和 commit,然后我尝试将远程代码拉取更新并与本地合并git pull -f origin develop 。(-f是强制的意思)

但是远程会多自动报一条信息(也就是强制合并的信息)
Merge branch 'develop' of git.xx:xxxxx into develop

解决办法二(用这个更优)

使用 git stash 命令。

首先明确一下 git stash 命令的使用场景:比如当对 develop 下的A分支进行修改,修改到一半,需要去修改B分支,这个时候如果直接 checkout 切换到B,会报错。这个时候我们就需要用到 git stash 命令去解决这个问题。

git stash 将未提交的改动保存在本地,让你可以进行修改、切换分支以及其他 Git 操作。(需要的时候,你可以重新应用这些存储的改动。)暂存是本地范围的,不会被 git push 推送到远程。

如果还未对代码进行commit,那么就将本地代码先存到暂存区stash中,然后进行pull。

posted @ 2021-06-07 16:36  抓水母的派大星  阅读(140)  评论(0编辑  收藏  举报