多个git仓库 合并

为何要写


项目分类

工作所在的项目上做了前后端分离,主要分为3个项目:

  1. 通信前置(org-gateway)
    接收其他系统发送过来的消息,并直接通过RPC调用后端服务内的service
  2. web前端(org-web)
    管理类,例如用户管理、权限分配等,有时候需要调用后端服务
  3. 后端服务(org-service)
    用于处理所有请求

项目结构

此处的3个项目内文件仅仅用作演示,文件结构如下:

org  
|- org-gateway  
  |- gateway.txt
  |- 1.txt
|-org-service  
  |- service.txt
  |- 2.txt
|- org-web  
  |- web.txt
  |- 3.txt

改革在即

  正所谓天下分久必合,合久必分;然大势所趋,天下必将一统(PS:领导要求合并成一个仓库方便管理)
  现需要在org目录下建立一个org-base的文件夹,将所有三个项目都放入其中,并以文件夹区分开项目

操作步骤


0 重构原有项目目录

需要将项目根目录下所有文件移动到非根目录下,例如目前项目在./org-web,则需要将所有文件移到./org-web/org-web目录, 受git管理的文件使用 git mv 移动即可
重构后项目结构如下:

org  
|- org-base
|- org-gateway  
  |- org-gateway  
    |- gateway.txt
    |- 1.txt
|-org-service  
  |-org-service  
    |- service.txt
    |- 2.txt
|- org-web  
  |- org-web  
    |- web.txt
    |- 3.txt

1 添加远端仓库

命令格式

git remote add 远端别名 地址

首先在org-base创建git仓库,再将所有3个项目的git仓库添加到org-base的远程仓库中
remote add

2 从远端库获取

命令格式

git fetch 远端别名

此处org-base需要有个主分支,我在此处提交了一个base.txt文件后再做的获取
fetch

3 添加辅助分支

命令格式

git checkout -b 分支名 地址

add branch

4 切换回主分支

命令格式

git checkout master

checkout

5 合并辅助分支

命令格式(将指定的分支合并到当前分支),

git merge 分支名 --allow-unrelated-histories

注意: 如果直接合并会报无法合并无关的历史提交

加上--allow-unrelated-histories参数后即可正确提交啦,提交的时候会弹出VIM用于编辑提交的注释,就不截图了

剩余的两个分支合并时,我加了-m参数,免得在弹出来框框

最后再删除3个辅助分支以及3个远程仓库链接

总结


我们不难发现,其实他就只做了两步操作:
1.将其他git仓库作为远程库拉取到本地库中的一个分支(本文叫它辅助分支)
2.再将此分支合并入当前分支

转载于:https://my.oschina.net/u/2007323/blog/1860305

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值