将Github仓库/本地库导入到Gitee+git push后出现错误 ![rejected] master -> master(non-fast-forward)解决方案

Gitee导入Github仓库并同步更新

Gitee导入Github仓库并同步更新的内容看这篇
我在执行直接在gitee上选择从github/gitlab导入仓库的时候一直是导入失败,我就先把github上的项目下载下来,然后进行本地导入gitee上的,导入到GitHub的步骤也是一样的

将仓库clone到本地

git clone xxx.git
在这里插入图片描述

本地仓库与 Gitee 和 GitHub 两个远程库关联

  • 查看本地仓库的远程库列表
    git remote -v
    在这里插入图片描述
    例如我想上传的是gitee上面的,但之和github相连,并且名称为origin,在列表中没有 Gitee 的远程库地址,则需要新增一个地址
  • 远程库名 远程库地址
    git remote add

eg:eg: git remote add gitee git@gitee.com:xxx/xxx.git
在这里插入图片描述
如果在 add 的时候出现 error: Could not remove config section ‘remote.xxx’.一类的错误,通过把仓库下.git/config 文件里的 [remote “xxx”]删除或者是用其他远程库名即可。

如果原本只有 GitHub 一个远程库,则要注意,git 给远程库起的默认名称是 origin,需要用不同的名称来标识不同的远程库(GitHub & Gitee),则先删除已关联的名为 origin 的远程库:git remote rm origin

然后,先关联GitHub的远程库:git remote add github 远程库地址;eg:git remote add github git@github.com:xxx/xxx.git

注意,远程库的名称叫 github,不叫 origin 了。

接着,再关联 Gitee 的远程库:git remote add gitee 远程库地址
eg:git remote add gitee git@gitee.com:xxx/xxx.git

同样注意,远程库的名称叫 gitee,不叫 origin。

现在,用git remote -v查看远程库信息,可以看到两个远程库:
(我懒得改github的名字啦)
在这里插入图片描述

将本地文件上传到gitee/GitHub

git add . 将工作区的“新建/修改”添加到暂存区
git commit -m "提交日志" 将暂存区的内容提交到本地库
git push gitee 分支名如果要推送到 Gitee使用的命令
git push github 分支名如果要推送到 Github使用的命令
在这里插入图片描述

git push后出现错误 ![rejected] master -> master(non-fast-forward)

出现的错误

们提交代码git push后出现如下错误提示

$ git push -u origin master
To https://gitee.com/xxxxx/vue_shop.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://gitee.com/xxxxx/vue_shop.git'
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.

在这里插入图片描述

原因

Git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。
远程仓库和本地仓库存在差异。
一般都是因为你在码云创建的仓库有ReadMe文件,而本地没有,造成本地和远程的不同步。

解决方法

方法一、同步(我用的是这个)

1、git pull origin master --allow-unrelated-histories //把远程仓库和本地同步,消除差异
2、重新add和commit相应文件
3、git push origin master
4、此时就能够上传成功了

如果只是因为本地没有ReadMe文件,那么就在本地生成一个

git pull --rebase origin master  //本地生成ReadMe文件
git push origin master

方法二:强推

即利用强覆盖方式用你本地的代码替代git仓库内的内容,该命令会强制上传覆盖远程文件,慎用

git push -f origin master

方法三

先把git的东西fetch到你本地然后merge后再push

git fetch
git merge
  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值