为何要用
在使用svn的时遇到以下问题:
- 分支创建、合并困难
- 并行开发版本过多,开发中需求一直变更
- 无网就哭了,无法做提交
- 每个分支都是一份完整拷贝,切多个分支小硬盘撑不住
不过,现在我们已经迁移到Git啦。😏 当然迁移到Git就要按Git的规范,目前推荐大家以较为成熟的Git Flow的方式来实行代码的管理。
Git Flow
Gitflow工作流通过为功能开发、发布准备和维护分配独立的分支,让发布迭代过程更流畅。 严格的分支模型也为大型项目提供了一些非常必要的结构。 Gitflow工作流没有用超出功能分支工作流的概念和命令, 而是为不同的分支分配一个很明确的角色, 并定义分支之间如何和什么时候进行交互.

- master:永远处于准备发布状态
- develop:最新的下次发布开发状态
- release:准备要发布,从develop迁出,用于修复bug。完成后合并回master及develop
- hotfix:修复线上紧急bug,从master迁出,完成后合并回master及develop
- feature:开发新功能,统一由develop迁出,完成后合并回develop
使用
推荐不习惯使用命令行提交的可以使用GUI客户端SourceTree。
1、将工程拉下来后,可以直接使用SourceTree上的Git Flow按钮来初始化这个功能。一般使用默认的即可。
2、再次点击Git Flow会让我们选择想要创建的分支类型,这边以开发新功能为例做演示:
3、我们从develop分支创建一个功能分支test-rxw在feature目录下,现在对功能分支的代码进行开发提交,提交后就可以在Gitlab上看到这条提交信息。接着点击Create merge request 进行下一步操作。
4、在提交分支合并请求页面填写相关信息确认后提交。
5、提交后@相关人就能收到Gitlab的通知,在其主面板上就能看到相关的消息了。审核人查看提交信息确认后直接点击Merge就完成了合并操作,其他人直接在SourceTree上拉取下最新代码即可。
建议
develop、master分支设置为protect并分配固定的权限,通过merge request方式来review及合并代码
commit提交记录细化,每个提交描述清晰,打上对应的标签。 e.g.【Feature】功能开发、【Bugfix】bug修复、【Optimize】代码优化、【Resource】资源更新
其中【Bugfix】标签提交时可补充bug的产生原因、解决方案、影响范围及对应禅道的URL,这样review就可以更快了解这段修改的代码,且点击URL可以直达禅道查看bug描述。
