本地仓库推送到远程仓库:fatal: refusing to merge unrelated histories
最近,在操作git的时候,遇到各种问题,下面总结一下。
最开始,我不是先把远程仓库拉取到本地 ,而是直接在本地先创建一个仓库,再git remote add添加远程仓库。
当然,gitee官方还是有操作指南(在创建仓库后会显示)

首先,mkdir创建目录,在目录中添加内容,然后初始化为一个仓库,最后添加、提交到本地仓库。

添加远程仓库(注意:此时不会检查远程仓库是否存在,push的时候,如果不存在,会报错)
git remote add origin git@gitee.com:UncleYong/jmeter_dubbo_demo.git
注意:如果未配置ssh方式通信,就需要使用https地址:https://gitee.com/UncleYong/jmeter_dubbo_demo.git,否则push的时候会报错【详见:https://www.cnblogs.com/UncleYong/p/10676922.html】

按照官方教程,执行git push -u origin master
报错:Updates were rejected because the remote contains work that you do not have locally

上图提示,向远程库推送的时候,要先进行pull,让本地新建的库和远程库进行同步
git pull,给出了两个操作方式

git pull 远程分支名 本地分支名
git pull origin master,报错fatal: refusing to merge unrelated histories

执行git branch --set-upstream-to=origin/master master,依然报错

或者不执行上面pull,直接git push -u origin master,报错:Updates were rejected because the tip of your current branch is behind its remote counterpart

网上有些说:先fetch,然后再merge,最后上传push,还是报错

错误提示:fatal: refusing to merge unrelated histories
其实这个问题是因为两个根本不相干的git库,一个是本地库,一个是远端库, 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并。解决方法:
第一种方法: 先从远端库拉下来,把本地要加入的代码放到刚刚从远端库下载到本地的库中,然后提交上去,因为这样的话,你基于的库就是远端的库,这是一次update操作
第二种方法:使用这个强制合并的方法
git pull origin master --allow-unrelated-histories,后面加上--allow-unrelated-histories,把两个不相干的分支进行强行合并,后面再push就可以了
git push origin master:init,origin是别名(git remote add origin git@gitee.com:UncleYong/test.git),master是本地的分支名字,init是远端要推送的分支名字,本地必须要先add、commit完了,才能推上去
参考:http://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories
https://dannyhz.iteye.com/blog/2412222
第三种方法:强制push,这样会使远程修改丢失,尤其是多人协作开发的时候,所以慎用。
git push -u origin master -f
下面选择第二种方法
当前远程分支就下面一个文件

本地两个文件,一个同名的文件

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

这里不移除,也不移动,就改个名

git pull origin master --allow-unrelated-histories

按i,输入内容,esc,:wq退出
因为上面是改名,所以需要添加到本地仓库
最后,git push -u origin master

远程可以看到推送的内容

至此,问题解决,所以,最好还是按照第一种方法操作,第二种方法如果同名的比较多,存在合并的问题,第三种会把远程的全部覆盖掉,不推荐。
本地仓库推送到远程仓库:fatal: refusing to merge unrelated histories的更多相关文章
- 【原】本地仓库推送到远程仓库:fatal: refusing to merge unrelated histories
最近,在操作git的时候,遇到各种问题,下面总结一下. 最开始,我不是先把远程仓库拉取到本地 ,而是直接在本地先创建一个仓库,再git remote add添加远程仓库. 当然,gitee官方还是有操 ...
- git将本地仓库推送到远程仓库
如何将本地仓库推送到公司远程仓库? 1:前提是你本地安装好git.先把远程git仓库克隆到本地 git clone 远程仓库的地址(SSH) 2: git branch //查看本地分支 3: g ...
- git 本地项目推送至远程仓库
1 在本地文件夹下创建一个 Git 仓库(如test目录下) git init 2 此时test文件夹即是你的maste主分支,你可以在改文件夹下写自己的项目 3 将test文件夹下的内容提交至暂存区 ...
- 使用git命令将本地项目推送到远程仓库
将本地项目推送到远程仓库 这里先放一张图, 有助于理解git命令 1. 在GitHub上新建一个仓库 注意不要勾选自动生成README.md文件, 否则会产生某些问题, README.md文件到时可以 ...
- Git 如何解决部署远程仓库出现 fatal: refusing to merge unrelated histories 问题
想把本地仓库的文件搬到Github,先将远程仓库和本地仓库关联起来: 先到Github上复制远程仓库的SSH地址: 运行 git remote add origin 你复制的地址 理论上—如果在创建 ...
- git pull fatal: refusing to merge unrelated histories
1.首先我github有个远程仓库,然后我本地有个仓库 本地仓库我新添加了一个文件,然后我去关联(git remote add origin git@github.com:qshilary/gitte ...
- GIt -- fatal: refusing to merge unrelated histories 问题处理
今晚碰到这个问题-- fatal: refusing to merge unrelated histories 想了一下,为什么就这样了? 因为我是先本地创建了仓库,并添加了文件,然后再到github ...
- git 出现 fatal: refusing to merge unrelated histories 错误
git pull 失败 ,提示:fatal: refusing to merge unrelated histories 其实这个问题是因为 两个 根本不相干的 git 库, 一个是本地库, 一个是远 ...
- Git:fatal: refusing to merge unrelated histories
如何去解决fatal: refusing to merge unrelated histories 先pull,因为两个仓库不同,发现refusing to merge unrelated histo ...
随机推荐
- QT -- QString处理
1. 去掉字符串多余的空格,回车等. QString QString::simplified () const Returns a string that has whitespace removed ...
- ubuntu18.04LTS服务器用vituralenv安装和配置pytorch和tensorflow
============tensorflow================= $ python3 -m venv tf14====输入例子====# $ vim ~/.bashrc #(添加如下行, ...
- Java基础笔试练习(十二)
1.(C#.JAVA)扩展方法能访问被扩展对象的public成员 A.能 B.不能 答案: A 解析: 翻译一下,子类方法是否能够访问父类中的public成员. 2.如果子类要调用父类的构造函数,则通 ...
- quartz2.3.0(六)job任务异常处理方式
Job1类 package org.quartz.examples.example6; import org.quartz.DisallowConcurrentExecution; import or ...
- 最清晰易懂的Mysql CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP区别
timestamp数据类型 Mysql数据库中,当字段类型为timestamp(时间戳)时,如果默认值取CURRENT_TIMESTAMP,则在insert一条记录时,此时的值自动设置为系统当前时间, ...
- Linux 中ifconfig和ip addr命令看不到ip
解决方案: 输入 vi /etc/sysconfig/network-scripts/ifcfg-ens33 将ONBOOT权限改为yes 保存退出,按Esc,输入:wq 重启网络服务,输入 sudo ...
- C# 中关于重载与重写的区别及用法
1.重载(overload): 在同一个作用域(一般指一个类)的两个或多个方法函数名相同,参数列表不同的方法叫做重载,它们有三个特点(俗称两必须一可以): 方法名必须相同 参数列表必须不相同 返回值类 ...
- showModalDialog的使用方法
基本介绍: showModalDialog() (IE 4+ 支持) showModelessDialog() (IE 5+ 支持) window.showModalDial ...
- 1 集群状态、增删改查、全量替换、强制创建、设置单个index的分片数副本数
检查集群健康状态,可以看集群颜色.(黄色:primary shard都正常,replica不正常) GET /_cat/health?v 列出集群所有index GET /_cat/indices?v ...
- 制作IOS ANE的基本流程
来源:http://www.swfdiy.com/?p=1239 1. 使用xcode新建ios上的static library 工程 2. 从air sdk/include里拷贝flashrunti ...