一、仓库合并,仓库搬迁

仓库1: first1 <---------- 2 <---------- 3 <------------ 4 <---------------8

仓库2:first1 <---------- 2 <---------- 3 <------------5 <---------- 6 <---------- 7

这两个仓库在前3次提交一样,之后分别进行开发,现在要把仓库2合并到仓库1

 

1、进入仓库1

git remote add old_cnstream git@172.10.80.76:video/cnstream.git

为仓库1添加一个远程仓库old_cnstream,这个仓库链接的是仓库2的远程

2、下载仓库

git fetch old_cnstream

此时会将远程仓库2下载下到本地

3、将仓库2需要合并的分支切到本地

git checkout -b old_cnstream_master old_cnstream/master

4、将仓库1需要合并的分支切出(如果在master的话)

5、切到仓库1相要合并进入的分支 new_master

6、现在处在 仓库1 new_master ,将old_cnstream_master合并到仓库1

git merge old_cnstream_master

 

二、子仓库

cnstream仓库与easydk为独立仓库,现在cnstream要包含easydk为子仓库,cnstream/easydk

1、子仓库的添加

git submodule add <url> <path>

url为子仓库的路径,path为仓库放的目录。

2、子仓库的使用

git submodule update --init --recursive

默认的子仓库无内容,需要执行上面命令进行下载。

3、子仓库版本的更新

需要修改两个地方,第一在cnstream目录下.gitmodules修改 url 和branch,这里指定子仓库的地址和分支;第二切到子仓库easydk下,checkout 到想要的easydk版本

完成后将  .gitmodules 和 easydk进行commit

 

4、子仓库更新到默认

cd到上一级目录

git submodule update --init --recursive

 

三、提交合并

想要把分支v2.0的提交  38361a55 提交到分支v3.0

git checkout v3.0分支

git cherry-pick 38361a55  #commit id

 

posted on 2020-12-15 11:45  wulc++  阅读(1562)  评论(0编辑  收藏  举报