git 常见冲突解决——git push遇到报错error: failed to push some refs to ‘[email protected]:xxx/xxx.git

1 问题描述

在提交代码时我们在本地直接执行如下命令:

#添加修改代码文件到暂存区
git add 'xx/xxx/xxx/test.json'

#提交代码到本地仓库
git commit -m 'insert xx/xxx/xxx/test.json'

# 提交代码到远程仓库
git push

出现如下报错:

To git@github.com:xxx/xxx.git
 ! [rejected]        bd_tools2.0 -> bd_tools2.0 (non-fast-forward)
error: failed to push some refs to 'git@github.com:xxx/xxx.git
hint: Updates were rejected because the tip of your current branch is behin
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.

2 原因分析

造成这个问题的主要原因是我们在提交代码时没有将远程仓库中代码变动拉到本地仓库中,因此产生了冲突。也就是在我们提交之前将别人已经先提交代码到远程仓库中,使得远程仓库中已经发生改变。因为远程库与本地库不一致造成的,那么我们把远程库同步到本地库就可以了。

3 问题解决方案

这条指令的意思是把远程库中的更新合并到本地库中,–rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中。

git pull --rebase origin bd_tools2.0

4 形象的解释下错误情况的发生和解决

在这里插入图片描述
git pull –rebase origin bd_tools2.0意为先取消commit记录,并且把它们临时 保存为补丁(patch)(这些补丁放到”.git/rebase”目录中),之后同步远程库到本地,最后合并补丁到本地库之中。
在这里插入图片描述
接下来就可以把本地库push到远程库当中了。
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扫地增

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值