基于 Phabricator 的 Git Flow 最佳实践
文章目录
Phabricator
: Facebook 出品的一个开发协作平台,可以方便的进行任务的指派、code review 等。
Git Flow
: 基于git,适用于客户端的开发,围绕着版本发布(release)为基础的一套工作流。
Arcanist
: Phabricator 提供的 differential(code review)命令行工具。
Phabricator
本身使用的是 post-review 的工作流,对于 Git Flow 并没有很好的支持。想要在Phabricator
上实现 Git Flow
需要做一些配置。另外,使用 arc land
合并代码时会将本地的分支直接删除,所以在实现 Git Flow
时我们会需要一些额外的 git
操作。
配置工程文件
在工程的文件夹下创建文件 .arcconfig
,添加配置
{
"phabricator.uri" : "https://phabricator.example.com/",
"base": "git:merge-base(origin/develop), arc:prompt",
"arc.land.onto.default": "develop"
}
因为 Git Flow
的默认分支应该是develop
,所以我们需要调整arc diff
和arc land
的默认分支为develop
Feature 开发
功能开发可以使用正常的Git Flow
流程。
- 基于
develop
检出feature
分支 - 完成开发之后使用
arc diff
提交 code review - code review 之后使用
arc land
合并代码至develop
Release 开发
Release 基于 develop
,但是最终必须合并到 master
分支上,所以除了在命令行里使用 arc
外还要手动操作 git
。
- 基于
develop
检出release
分支 - 开发完成之后使用
arc diff
提交 code review - code review 并且 测试完成 之后使用
arc land
合并代码至develop
- 使用
git
将develop
分支合并到master
,基于合并的commit
添加 Tag
Hotfix 开发
Hotfix 是基于 master
分支的修复分支。
- 基于
master
(上一个发布版本)检出hotfix
分支 - 开发完成之后使用
arc diff master
提交 code review (此时 diff 的内容为hotfix
和master
分支) - code review 并且 测试完成 之后使用
arc land --onto master
合并代码至master
- 在合并的
commit
上添加 Tag - 将
master
合并到develop
分支
Phabricator
提供了完善的 code review 流程,我们只需要基于这一流程略加修改就可以在项目中实现Git Flow
了。
文章作者 Dio.Ye
上次更新 2017-09-16