跳转至

本地代码连接多个远程仓库

今天开发时遇到了一个情况,将一个系统A的一个大模块单独抽离出来做一个系统B。这样遇到一个问题,当同样的东西在系统A内修改过后,难道还要在B的代码中再cv一遍?这样不免有点麻烦,后面发现有其他解决方案。

主要思路是,在B的代码仓库中创建一个中间分支,用与存储A的主分支的代码。在A的代码中修改以后,通过Cherry-Pick将指定的commit合并到B的分支上,这样可以最小程度的合并需要的代码。

首先需要将B的本地代码同时与A的远程仓库也建立连接

git remote add target http://xxx.xxx.xxx.xxx:xxxx/web/admin.git

查看本地代码关联的远程仓库

origin是源仓库地址,target是另外一个目标仓库地址

origin  http://xxx.xxx.xxx.xxx:xxxx/web/admin.git (fetch) 
origin  http://xxx.xxx.xxx.xxx:xxxx/web/admin.git (push)
target  http://xxx.xxx.xxx.xxx:xxxx/web/admin1.git (fetch)
target  http://xxx.xxx.xxx.xxx:xxxx/web/admin1.git (push)

然后本地建立一个中间分支

git checkout -b middle-branch

切换middle-branch后,拉取A中的主分支的代码

git pull target release  --allow-unrelated-histories // 允许两个没有共同历史记录的分支进行合并