[转]如何导入另一个 Git库到现有的Git库并保留提交记录

原文:如何导入另一个 Git库到现有的Git库并保留提交记录

问题描述:

我在本地有两个Git库项目(D1=PC项目 包含通用项目,D2=移动项目也包含通用项目这两个项目在同一目录下),因为这两个项目使用的通用项目是一样的如数据库访问等只有显示层(view)不一样而已,因为在之前没有很好的规划而导致出现现在的问题,即如果D1里更改了通用项目的文件,那么D2需要先将D1通用项目的更改先合并过来然后再处理D2项目(防止出现差异导致出现问题),反之也是一样,所以如果通用项目文件经常更新时,我就需要浪费大量的时间在合并这两个Git仓库上。

所以要现在要将把这两个库项目合并到一个库里以分支的方式(D1,D2)进行管理(开发PC项目时切换到D1分支,开发移动项目时切换到D2分支)。

然后通用项目分别从D1,D2分支迁移出来到新分支Common单独进行管理,然后D1和D2删除通用项目文件。

现在我如何将一个库合并到另一个库呢(提交记录必须不能丢失)?经过几天的测试终于解决

需要解决的问题:

  1. 把D2仓库的所有内容和提交记录合并到 D1 仓库中中,然后以分支的方式来管理D2项目?
  2. 如何从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会将两个仓库的提交按时间的方式来进行合并)
image
  • 以上两种方式都可以将一个Git仓库的文件和提交合并到另一个Git仓库(Pull更简单点)

因为对git并不是太了解所以并不太清楚这个之间的关系和区别
stackoverflow上有人说可以使用“git-fast-export”来实现,但搞了一二天愣是没有实现
因为之前测试时没有截图所以也忘记错误是什么了,现在也懒的再测试一遍

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,791评论 1 17
  • “和我在成都的街头走一走,直到所有的灯都熄灭了也不停留。” 如果想在成都的街头走一走,锦里,是个不错的选择。相对于...
    ChristianYuan阅读 455评论 4 13
  • 在自己电脑上搭建Git私有服务器一开始肯定是百度,因为整个问题维度很低,大概一篇文章就够用,筛选后应该就是这篇: ...
    环零弦阅读 9,357评论 0 5
  • 作为一个许久都不曾动笔的我,曾经说过要明天坚持写一篇文章,但是现在坚持下去的只有每天都在看书吧。这就是大学吗? 我...
    蒲公英的江小白阅读 752评论 28 45
  • 已经记不得什么时候爱上小说,是第一次在借书摊上拿到的一本《故事会》,还是从还没开始认字就缠着爸爸买连环画开...
    灵允阅读 395评论 0 0