需求
有一个产品化的项目,其他普通项目都要以产品化这个项目作为基础,在这个基础上各自完成各自项目业务代码的扩展。但是,产品化也会不断的升级,当普通项目想要同步最新的产品化代码时,该如何做?
简单来说,产品化仓库为:product,一般项目仓库为:test,现在test仓库里的dev分支想要同步product仓库里的master分支。
步骤
① 在本地代码库新建一个分支(分支名称自己定义),这个分支对应的是产品化的整个仓库,可以理解为普通项目和产品化项目之间的一个桥梁。
git remote add origin_product xxx(git产品化项目地址)
② 检查下桥梁是否搭建成功。
git remote -v
③ 拉取桥梁下的所有分支,也就是拿到product仓库最新的代码。
git fetch origin_product
④ 将origin_product分支下的master分支同步到本地master分支。
git checkout master
git merge origin_product/master
⑤ 到这一步,本地master已经是最新代码了,这时就只需要合并到本地dev分支即可。(因为我开发项目代码都是放dev分支的)
git checkout dev
git merge master
⑥ 提交最新代码到远程仓库。
git push
注意:
第④步完成之后,可能会出现冲突的情况。这时你需要手动解决冲突,然后再进行下一步。
总结:
桥梁 origin_product 是关键,有了它之后,执行git fetch origin_product就能保证其他仓库的最新代码都在origin_product里面。然后,你想要怎么去合并都是可以的。