GitLab、Git Flow 工作流使用

3,043 阅读2分钟

为何要用

在使用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按钮来初始化这个功能。一般使用默认的即可。

Git_Flow_Init

2、再次点击Git Flow会让我们选择想要创建的分支类型,这边以开发新功能为例做演示:

Git_Flow_Start

3、我们从develop分支创建一个功能分支test-rxw在feature目录下,现在对功能分支的代码进行开发提交,提交后就可以在Gitlab上看到这条提交信息。接着点击Create merge request 进行下一步操作。

Git_Flow_Commit

4、在提交分支合并请求页面填写相关信息确认后提交。

Git_Flow_MergeRequest1 Git_Flow_MergeRequest2

5、提交后@相关人就能收到Gitlab的通知,在其主面板上就能看到相关的消息了。审核人查看提交信息确认后直接点击Merge就完成了合并操作,其他人直接在SourceTree上拉取下最新代码即可。

Git_Flow_MergeRequest3

建议

  • developmaster分支设置为protect并分配固定的权限,通过merge request方式来review及合并代码
Git_Flow_Protect
  • commit提交记录细化,每个提交描述清晰,打上对应的标签。 e.g.【Feature】功能开发【Bugfix】bug修复【Optimize】代码优化【Resource】资源更新
Git_Flow_Commit_Log

其中【Bugfix】标签提交时可补充bug的产生原因解决方案影响范围及对应禅道的URL,这样review就可以更快了解这段修改的代码,且点击URL可以直达禅道查看bug描述。