把本地仓库的代码推送到远程仓库是报错, 显示To gitee.com:xuankb/name.git ! [rejected] master -> master (non

To gitee.com:xuankb/name.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'gitee.com:xuankb/name.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. If you want to integrate the remote changes,
hint: use 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

这个错误信息表明, 你在尝试推送到远程仓库时遇到了问题.

错误的主要原因是, 你本地的master分支落后于远程仓库的master分支.

这通常发生在远程仓库有新的提交,而你的本地仓库还没有这些更新.

简单来说, 就是 远程仓库有的东西, 你本地仓库没有.

这时候, 你把本地仓库的代码, 推送到远程仓库, 就会爆出这个错误.

这个问题的解决思路就是, 把远程仓库的代码, 先拉取到本地仓库, 然后再进行提交.

以下是我解决该问题的步骤:

1.git fetch origin

该命令的作用是,  从远程仓库获取最新的代码内容.

但是, 它只是获取信息, 并不会自动合并或修改你当前本地仓库的代码.

这是它独特的优势.

注意: 该命令还有其他的作用, 想知道的可以自行搜索查看.

2.git merge origin/master

该命令作用是, 把远程仓库主分支(origin/master)的更改合并到你的本地仓库分支中.

这个操作会使你  本地仓库的分支 与  远程仓库的主分  支保持同步.

注意: 如果你当下的文件夹与之前的文件夹不是同一个, 并且两个文件夹都经历了git初始化, 那就会产生另一个冲突.

简单来说.

你上次提交用的是  甲文件夹, 经历了git初始化(git init 命令).

这次提交用的是  乙文件夹, 经历了git初始化(git init 命令).

这种情况,  就会产生另外一个冲突.

这个冲突产生原因就是:

远程仓库和本地仓库有完全不同的提交历史.

这里的远程仓库, 指的是, 与 甲文件夹 有连接的远程仓库.

这里的本地仓库, 指的是, 你当下的 乙文件夹.

(因为是两个不同的文件夹, 而且都经历了git init 初始化, 所以会出现 拒绝合并, 毕竟都不是一个祖宗).

如何解决这个问题呢?

这里有两个办法:

第一个是, git clone URL

如果你认为你的本地仓库代码不重要, 你可以直接克隆远程仓库.

第二个是, git pull origin master --allow-unrelated-histories

git pull origin master

它的作用是, 从 远程仓库的分支中 获取最新的代码,  把最新代码自动合并到当下的本地仓库的分支中.

--allow-unrelated-histories

它的作用是, 允许git强行合并两个没有共同提交历史的分支.

只要上帝允许, 就算不是一个祖先, 现在也可以是一家人.

现在执行     git pull origin master --allow-unrelated-histories

之后, 会出现下面这个界面.

别紧张, 这不是新错误.

而是git想让你解释为什么非要强行合并, 现在你是霸王硬上弓, 别人想找你要个理由, 也很正常.

如果你想要说些什么, 可以在空白区域直接留言.

如果不想, 你也可以直接 保存并关闭编辑器, 彪悍的人生不需要解释.

你可能还想知道  保存并关闭编辑器的方法.

它只有三招, 非常简单.

第一, 按下ESC键, 确保你处于命令模式.

第二, 输入  :wq  

w  表示 写入(保存)文件

q  表示退出编辑器

第三, 按下Enter键执行命令

三招一出, 搞定一切.

3.接下来你再执行 git merge origin/master

现在你再执行  git merge origin/master

会给你这么显示.

它的意思就是说, 你当前分支已经是最新的, 不需要进行任何合并操作.

4.把 本地仓库的代码 推送到 远程仓库

现在你再执行  git push -u origin master  

如果你本地仓库的分支已经和远程仓库的分支建立了联系.

可以直接执行  git push origin master  

如图可见.

把 本地仓库的代码 推送到 远程仓库 成功 ! ! !

问题解决 ! ! ! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值