目前笔者搬砖的项目,有19个小伙伴同时开发。没有做组件化,所以大多数代码,都在一起。
当多个人,同时开发同一个项目,势必无法避免当前开发分支合并到主分支的问题。
比如当前自己的开发分支 feature_1 是从develop_0 分出来的,develop_0已经有了新的提交develop_1,此时同样有很多小伙伴有他们自己的featurexxx_xxx,大家需要把测试、上线的功能,合并到主分支,或者新建的release分支(暂且命名为preRelease_xxx)。那么此时可以有以下几种方案。
1.直接将自己的feature_1合并至preRelease_xxx,解决冲突。
2.将preRelease_xxx合并至自己的feature_1,解决冲突,再合并回preRelease_xxx。
3.将自己的feature_1变基到preRelease_xxx,解决冲突,合并feature_1至preRelease_xxx。
这三种方法,笔者目前会首选方案1,直接将自己的feature_1合并至preRelease_xxx,解决冲突。理由很简单:不能让别人的代码,影响到自己正在开发的代码。
设想一下情形:另一位小伙伴Peter,在pod里新增了一个三方库,推到了preRelease_xxx,而你本地,并没有这个三方库。现在需要你提交自己的代码,合并到需要测试的版本,那你会选哪个?很明显,要选1。因为如果你选了其他两个,就算你们开发的代码没有交集,依然会因为pod的更新,导致你本地代码跑不起来。你必须更新pod,当多人同时开发,且没有指定三方库版本号的时候,更新pod,很可能导致各种奇奇怪怪的错误。而我们在合并代码的时候,无法保证别人没有增加新的pod,所以最好直接选用第一种方案,直接将自己的feature_1合并至preRelease_xxx,解决冲突。然后推代码。