在实际开发中遇到了这样一个问题:
团队的成员在一个fetaure branch上做一期开发,目前开发中,还需要一段时间上线。现在需要在fetaure branch功能的基础上做二期开发,二期会晚于一期上线,同时fetaure branch还在提交。
解决思路大概就是创建分支的子分支,网上很多资料都是如何创建,其实比较重要的是如何合并回去,合并会不会有风险。
这也是这篇文章讨论的重点,基于实际的测试。
Git系列的目录如下:
Git常用命令整理一(Git stash)
Git常用命令整理二(Git托管项目)
Git常用命令整理三(Git配置)
Git常用命令整理四(Git删除文件)
Git常用命令整理五(Git疑难杂症)
Git常用命令整理六(创建分支的子分支)
Git常用命令整理七(稀疏检出)
Git常用命令整理八(忽略文件)
Git常用命令整理九(忽略跟踪)
Git常用命令整理十(优雅用法)
Git常用命令整理十一(各种撤回)
一、算法
0、基于master分支创建develop
git checkout -b develop origin/master
1、基于develop创建feature_v1,在feature_v1上更改代码提交。
git checkout -b feature_v1 orgin/develop
2、基于feature_v1创建feature_v2,在feature_v2上更改代码提交。
git checkout -b feature_v2 orgin/feature_v1
3、在feature_v1上改代码提交。
在feature_v1上git pull,不会更新到feature_v2的更新
4、在feature_v2上更新。
会更新到feature_v1的变更,涉及到冲突需要解决冲突。
5、feature_v1合并到develop。
6、feature_v2继续提交代码,合并到develp即可。
feature_v2不需要先合并到feature_v1,在合并到develop。
二、总结
说明:为了方便阐述,这里主分支为master分支,父分支为基于master分支fork的分支,子分支为基于父分支fork的分支。
针对以上问题,创建分支的子分支即可,子分支独立开发,提交不会影响父分支,并且可以更新到父分支的提交。最终父分支先合并到主分支上线,子分支开发完后,直接合并到主分支上线即可。