zoukankan      html  css  js  c++  java
  • git pull refusing to merge unrelated histories

    1. 简介

    最近的项目开发环境我换到实验室的机器上了,毕竟是台式机,速度杠杠的。于是出现了一个问题,台式机上面的代码我笔记上的代码同步的问题。于是想到了Git这个强大的工具。关于git的简介我就不说了,网上一大堆。直接上干货。

    2. 环境

    1.我的系统:Windows7 

    2.git版本:2.9.2

          由于我的git版本是最新版,后面我出现的坑就是最新版本的问题。

    3.托管环境:开源中国的码云

    3. 使用步骤

        1.在码云上面创建一个项目(repository)
        2.在Windows下安装git,并且在我的项目下create一个repository。
        3.创建一个key(如果本地没有),然后将公钥添加到码云上。
        4.通过git bash进入repository目录下 
        5.首先把所有的文件添加到 stage域中,类似于缓存。

    $git add -A

        表示添加当前目录下的所有文件到stage域中 
    6.然后commit。

    $git commit -m “备注”

        表示提交所有文件到本地仓库中,必须加上-m 和备注。
        7. 这个时候如果需要和码云上的远程仓库同步,必须先添加remote。要查看当前配置有哪些远程仓库,可以用命令:

    $git remote

        
    执行时加上 -v 参数,你还可以看到每个别名的实际链接地址。

    $git remote -v


    下面我来添加远程库:格式是:

    $git remote add [shortname] [url


    我把我的码云上面的项目purplecollar远程库添加到本地仓库:

    $git remote add origin git@git.oschina.NET:louyuting/purplecollar.git

        8.这里也就是我出错的地方了:我们把我们本地仓库的项目上传到git前,由于码云仓库的内容可能有别人提交过了新内容,所以我们必须要先同步远程仓库到本地即 pull操作。但是我pull时报错了:

    fatal: refusing to merge unrelated histories

    我后来在overstackflow上面找到原因, 
    链接如下:http://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories 
    我们必须添加一个可选项

    –allow-unrelated-histories

    才行,这个问题在2.9.0之后的版本才出现的,以前的版本可以正常工作。所以最后我的命令是:

    $git pull origin master –allow-unrelated-histories

    把远程的origin仓库的master分支同步到本地,命令执行后后面还要输入备注。这时远程仓库同步到本地就成功了。
        9.再就是直接push推送本地项目到远程仓库分支了。格式:

    $ git push <远程主机名> <本地分支名>:<远程分支名>

    下面是我的命令:

    $git push origin master:master

    提交成功。

  • 相关阅读:
    Python 包的概念
    EXCEL基础篇(二)
    EXCEL基础篇(一)
    JavaScript(四)Bom
    JavaScript(三)Dom查找、设置标签属性及内容、绑定事件
    erlang并发编程(二)
    OTP&ETS
    erlang中http请求
    erlang证书加密
    erlang并发编程
  • 原文地址:https://www.cnblogs.com/lavin/p/7119761.html
Copyright © 2011-2022 走看看