目录
前言
前提操作
合并
cherry-pick
前言
这里说的合并两个git仓库代码一般都是指同一个系统,一般有如下两种场景可能需要进行合并
- 一个系统由多个团队开发,且互相使用了不同的git仓库,功能上线时需要进行合并
- 一个系统区分了项目版和产品版,项目版需要迁移产品功能,此时则需要将产品代码合到项目代码
前提操作
这里假设我们自己的仓库为A,另一个仓库为B,需求是将B仓库的master分支合并到A仓库的dev分支,首先需要将另一个仓库先拉到本地,操作如下
- idea下新添加B仓库的远程地址,右键项目->Git->Repository->Remotes...,弹出Git Remotes弹窗,点击弹窗右侧”+”,添加B项目的仓库地址(注意名称不能与A项目的名称相同)
- 拉取B远程仓库所有的分支,右键项目->Git->Repository->Fetch,此时idea右下角的分支管理中就能看到B仓库的所有分支信息
合并
当两个仓库代码均拉取完成后,由于idea的分支管理中已经有所有分支信息了,此时已经相当于在“同一仓库”下了,按照正常合并即可,合并也分为两种操作:
- merge:全量合并,即将B仓库的master分支所有代码变动全部合并到A仓库的dev分支
- cherry-pick:部分合并,即将B仓库的master分支部分代码变动选择性合并到A仓库的dev分支
这里重点介绍下该种合并方式,首先先切换到A仓库的dev分支,然后选中下方的 Version Control 状态栏,点击 Log 标签,选中B仓库的master分支,如下:

最后批量选中需要合并过来的提交记录,然后右键->cherry-pick即可,有冲突就慢慢解决
搞定。