最近,在操作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的更多相关文章

  1. git将本地仓库推送到远程仓库

    如何将本地仓库推送到公司远程仓库? 1:前提是你本地安装好git.先把远程git仓库克隆到本地  git clone 远程仓库的地址(SSH) 2: git  branch //查看本地分支 3: g ...

  2. git 本地项目推送至远程仓库

    1 在本地文件夹下创建一个 Git 仓库(如test目录下) git init 2 此时test文件夹即是你的maste主分支,你可以在改文件夹下写自己的项目 3 将test文件夹下的内容提交至暂存区 ...

  3. 本地仓库推送到远程仓库:fatal: refusing to merge unrelated histories

    最近,在操作git的时候,遇到各种问题,下面总结一下. 最开始,我不是先把远程仓库拉取到本地 ,而是直接在本地先创建一个仓库,再git remote add添加远程仓库. 当然,gitee官方还是有操 ...

  4. 使用git命令将本地项目推送到远程仓库

    将本地项目推送到远程仓库 这里先放一张图, 有助于理解git命令 1. 在GitHub上新建一个仓库 注意不要勾选自动生成README.md文件, 否则会产生某些问题, README.md文件到时可以 ...

  5. Git 如何解决部署远程仓库出现 fatal: refusing to merge unrelated histories 问题

    想把本地仓库的文件搬到Github,先将远程仓库和本地仓库关联起来: 先到Github上复制远程仓库的SSH地址: 运行 git remote add origin 你复制的地址 理论上—如果在创建 ...

  6. git将本地项目推送到远程仓库

    一.三个基本配置: Git全局设置 git config --global user.name "账户名称" git config --global user.email &quo ...

  7. git远程建立仓库后,将本地项目推到远程报错 fatal: refusing to merge unrelated histories

    出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库,假如之前是直接clone的方式在本地仓库就不会有这个问题了. 解决方式是在命令后紧跟 --allow-unrelated-hi ...

  8. Git -- 本地 一个相同的新的分支 并 推送到远程仓库

    (一).创建本地分支 git checkout -b 新分支名 执行该指令后,会在本地创建一个新分支,该分支是从当前分支上检出的,所以所有文件内容都和当前分支一模一样,这是正常的.创建成功后,将自动切 ...

  9. git无法pull仓库refusing to merge unrelated histories

    本文讲的是把git在最新2.9.2,合并pull两个不同的项目,出现的问题如何去解决fatal: refusing to merge unrelated histories 我在Github新建一个仓 ...

随机推荐

  1. Redis教程(Linux)

    这里汇总了从简单的安装到较为复杂的配置,由浅入深的学习redis... 一 , 安装 1) redis扩展安装 从官网上下载扩展压缩包 wget http://pecl.php.net/get/red ...

  2. CentOS 6.4 源码安装MySQL 5.6

    1.安装前准备工作 1.1 必备的包 gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.cmake :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本. ...

  3. [转帖]SAP进阶:再论SAP权限

    SAP进阶:再论SAP权限 http://blog.vsharing.com/MilesForce/A634100.html 网上有不少关于权限的文章,多是转来转去,COPY的台湾某个人N年前的PPT ...

  4. [官网]Linux版本历史

    This is a list of links to every changelog. https://kernelnewbies.org/LinuxVersions 总结一下 2.6.x 存在了八年 ...

  5. mybatis源码分析(三)------------映射文件的解析

    本篇文章主要讲解映射文件的解析过程 Mapper映射文件有哪几种配置方式呢?看下面的代码: <!-- 映射文件 --> <mappers> <!-- 通过resource ...

  6. 剑指offer(17)层次遍历树

    题目: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. public class Solution { ArrayList<Integer> list = new ArrayLis ...

  7. 部署wp 的时候遭遇的google字体问题

    国内WP CDN问题昨天下午到今天中午 总算解决了WORDPRESS 在 谷歌字体被枪毙之后带来的一系列问题..在天朝想当个 安静的美男子设计师也是那么烦恼的事情捏! 解决办法将所有的带fonts.g ...

  8. 从git中删除 .idea 目录

    将.idea目录加入ignore清单: $ echo '.idea' >> .gitignore   从git中删除idea: $ git rm —cached -r .idea 3 将. ...

  9. 如何快速定位到DBGrid的某一行!!!急...

    比如我查找张三,那么DBGrid就可以定位到张三那行并选中这行,除了用循环实现还有没有快速定位的方法,谢谢! 解决方案 » to SuperTitan001 那如何找到张三的这行呢?除了用循环还有什么 ...

  10. 实用的几个JS新特性(es 2016)

    在Chrome 55下测试,可用. 1.箭头函数(arrow function) 以前写的匿名函数是这样的 function(){}, 现在可以简单写成这样()=>{} 如果直接return,没 ...