git 常见冲突解决——git push遇到报错error: failed to push some refs to ‘git@git.xxx.com:xxx/xxx.git

Posted 扫地增

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git 常见冲突解决——git push遇到报错error: failed to push some refs to ‘git@git.xxx.com: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到远程库当中了。
在这里插入图片描述

以上是关于git 常见冲突解决——git push遇到报错error: failed to push some refs to ‘git@git.xxx.com:xxx/xxx.git的主要内容,如果未能解决你的问题,请参考以下文章

git 常见冲突—— git pull遇到报错Your local changes to the following files would be overwritten by merge

Git push 报错 "error: failed to push some refs to " 解决

Git解决冲突(本地共享仓库简单实践)

git 解决多人修改相同的文件导致的冲突

Github使用git提交时遇到冲突

Github使用git提交时遇到冲突