git push 报错"Updates were rejected because the tip of your current branch is behind"

在Android源码的修改过程中,在把本地的分支push到服务器的时候遇到如下错误:

error: failed to push some refs to 'wsq@192.168.1.56:/home/wsq/Extend/wsq/android/sprd/src/sc7731/android6.0/sc7731_m'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

情景:

当时,手上又一个客户需求比较多的项目一个人忙不过来,就几个同事一起来做。我先把我最新的修改push到服务器,此时的节点为:节点1。其他的同事在将我上传的分支checkout到自己本地进行修改,修改完成后他第一时间把他的代码push到了服务期。好了,当我修改完成后想将我本地的代码(我修改的地方和同事的修改没有冲突)传到服务器和同事修改的代码合并,我首先git pull了下,没有什么异常。但是当我git push origin HEAD的时候系统就提示“Updates were rejected because the tip of your current branch is behind”。


原因:

出现这个错误提示原因很简单,也就是一个先后顺序关系。


解决办法:

1、在你本地重新创建一个分支:git branch test (基于你要提交的分支)

2、在将你要git push的分支git  checkout 到情景中提到的节点1

3、git pull 将你同事的提交全部拉到本地

4、再使用git cherry-pick从test分支将你的修改逐条的提交拉回来

5、然后在使用git push origin HEAD将你的分支push到服务器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值