zoukankan      html  css  js  c++  java
  • 互联网直播点播平台EasyDSS使用Git多人开发报refusing to merge unrelated histories错误

    用过我们EasyDSS直播点播平台的用户们都知道,我们提供一站式的转码、点播、直播、时移回放服务,极大地简化了开发和集成的工作。同时也提供丰富的二次开发接口,基于JSON的封装及HTTP调用。

    我们的研发人员最近在使用Git作为版本控制系统进行多人开发,Git便捷实用,实现了离线开发、代码审核特性,解决了跨地域协同开发中代码质量和编码协同的问题,并且分支管理功能强大,便于查询和追溯分支间的提交历史。

    Git 出现 fatal: refusing to merge unrelated histories 错误

    在我们开发DSS过程中,使用 Git 作为版本控制系统拉取远程仓库中的代码时,突然出现 “fatal: refusing to merge unrelated histories”,无法合并代码。

    原因分析

    此种错误提示代表本地分支和远程分支无关联关系。当本地库尝试从远端库拉取代码尝试合并时,因为本地库同远端库无关联,所以提示无法合并。但是为什么会突然出现这种问题?

    目前已确认本地库和远程库的代码是一致的,在合并代码前另一开发人员推送了一次开发代码,因此怀疑为此次推送导致的远程库与本地库无关联。

    同时,另一开发人员确认 Git 操作,其使用的是 Git Extensions 进行的 Git 操作,笔者使用的是 TortoiseGit 进行的 Git 操作,两者底层的部分命令可能不同,最终导致本地库和远程库无关联了。

    解决办法

    对此我们提供了两种解决办法:

    解决办法一:

    1. 重新下载一次远程代码到本地;
    2. 将修改的代码,写入到1中下载的本地库中,然后提交,
      此种解决办法为更新代码,无合并操作。

    解决办法二:

    使用强制合并命令,将两个仓库进行合并。

    git pull origin master --allow-unrelated-historie 
    

    上述命令中的–allow-unrelated-historie 代表强制合并两个分支。
    强制合并操作必须在确认两个分支合并无问题的情况下使用,如果无法确定合并是否会出问题,请使用办法一解决此问题。

  • 相关阅读:
    预备作业03
    预备作业02
    寒假作业01
    1179 最大的最大公约数(水题)
    HttpWebRequest
    python模拟银行家算法
    Lock锁与Condition监视器(生产者与消费者)。
    synchronized(){}同步代码块笔记(新手笔记,欢迎纠正)
    详解~实现Runnable方法创建线程之为什么要将Runnable接口的子类对象传递给Thread的构造函数
    语义web基础知识学习
  • 原文地址:https://www.cnblogs.com/easydss/p/13162086.html
Copyright © 2011-2022 走看看