zoukankan      html  css  js  c++  java
  • 如何导入另一个 Git库到现有的Git库并保留提交记录

    问题描述:

    我在本地有两个Git库项目(D1=PC项目 包含通用项目,D2=移动项目 包含通用项目这两个项目在同一目录下),因为这两个项目使用的通用项目是一样的如数据库访问等
     
    只有显示层(view)不一样而已,因为在之前没有很好的规划而导致出现现在的问题,即如果D1里更改了通用项目的文件
     
    那么D2需要先将D1通用项目的更改先合并过来然后再处理D2项目(防止出现差异导致出现问题),反之也是一样,所以如果通用项目文件经常更新时,我就需要浪费大量的时间在合并这两个Git仓库上
     
    所以要现在要将把这两个库项目合并到一个库里以分支的方式(D1,D2)进行管理(开发PC项目时切换到D1分支,开发移动项目时切换到D2分支)
     
    然后通用项目分别从D1,D2分支迁移出来到新分支Common单独进行管理,然后D1和D2删除通用项目文件
     
    现在我如何将一个库合并到另一个库呢(提交记录必须不能丢失)?经过几天的测试终于解决
     
    需要解决的问题:
         把D2仓库的所有内容和提交记录合并到D1 仓库中中,然后以分支的方式来管理D2项目
        如何从D2仓库和D1仓库迁移出通用项目文件并保留提交记录以后会单独处理
    目前的目录结构
    F:
     |--   D1
           |-- D1.txt
            |--.git
     |--   D2
           |-- D2.txt
            |--.git
     
    我期望的目录结构
    F:
     |--   D1
           |-- D1.txt
            |--.git
              |--   D2  合并D2仓库文件和提交记录到D1,以分支的方式管理
              |-- D2.txt
      
    解决方案:
         先看下D1和D2的提交记录
     
    D2仓库的提交记录
    D1仓库的提交记录
     
    使用remote加fetch的方法将D2的文件和提交合并到D1
    1. 切换到D1 Git仓库
    2. 使用“git remote add d2 ../d2”将D2仓库中所有信息以远程仓库的方式添加到D1的新建d2分支里
    3. 使用“git fetch --all”获取d2远程仓库的所有信息,--a 代表获取D2仓库的所有分支和tag等信息(合并前请尽量保持一个分支,否则合并后提交记录不忍直视)
    4. 切换到D1仓库的主分支master
    5. 合并已添加的远程分支d2到你需要的分支
    6. 处理合并后的分支,如删除远程分支不需要的分支,整理或精简合并后的提交历史,删除D2项目文件等(GIT会将两个仓库的提交按时间的方式来进行合并)
         未标题-4 拷贝.jpg
    使用pull直接进行合并
    1.  使用“git pull  远程分支地址”直接合并,应该在新的分支里进行该操作,然后再进行合
    2. 处理合并后的分支,如删除远程分支不需要的分支,整理或精简合并后的提交历史,删除D2项目文件等(GIT会将两个仓库的提交按时间的方式来进行合并)
        
     
    以上两种方式都可以将一个Git仓库的文件和提交合并到另一个Git仓库(Pull更简单点)
    因为对git并不是太了解所以并不太清楚这个之间的关系和区别
     
    stackoverflow上有人说可以使用“git-fast-export”来实现,但搞了一二天愣是没有实现
    因为之前测试时没有截图所以也忘记错误是什么了,现在也懒的再测试一遍
     
    参考:



  • 相关阅读:
    Linux命令行和Shell高效率使用方法
    PHP导出word,CVS,PDF
    PHP的CLI综合
    [PHP]算法-二叉树中和为某一值的路径的PHP实现
    [PHP]算法- 判断是否为二叉搜索树的后序遍历序列的PHP实现
    [PHP]算法- 二叉树的深度的PHP实现
    [PHP] 算法-镜像二叉树的PHP实现
    [PHP] 算法-二叉树的子结构判断的PHP实现
    [PHP] 算法-邻接矩阵图的广度和深度优先遍历的PHP实现
    [PHP] 算法-根据前序和中序遍历结果重建二叉树的PHP实现
  • 原文地址:https://www.cnblogs.com/huangtailang/p/4730336.html
Copyright © 2011-2022 走看看