聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

使用 git flow 进行产品分支的管理

2013-08-05 12:40 浏览: 1272205 次 我要评论(0 条) 字号:

如果你使用git对你的产品进行版本管理,那么 git flow 是一个很适合你的分支管理模型。 英文版详见 这里

之前使用了这个模型进行开发,觉得还不错, 于是有了这篇博客。 其实原文比此篇还要详细。只不过我加了一个例子,以及目前的心得:)

一共有4种类型的分支:

  1. develop 分支(只有一个分支)
  2. feature 分支(可以有很多分支)
  3. release 分支(同一时间只有一个分支,而且生命周期很短,只是为了发布)
  4. master 分支(只有一个分支)
  5. hotfix 分支(同一时间只有一个分支,用来进行 bug 的一些开发和小版本的发布)

对于 develop 分支,develop 是一个 Nightly Builds 的分支。merege 给 develop 的 commit,都是以 feature 为单位的。

当你有新的功能开发时,你需要创建 feature 分支来进行你的功能开发。此时的 feature 分支是 base 在 develop 分支的。当在某一功能完成之后,再把 feature 分支 merge 到 develop 分支上。

当有足够多的 feature merge 到了 develop 上,此时团队认为 develop 上的功能已经到了里程碑点,测试也已经OK了,就可以进行新版本的发布。这时,就到了需要创建 release 分支的时候。

releaes分支 base 在 develop分支 上。当 release 分支被创建之后,需要改一些发布的信息,比如版本号(如果你用的是maven,推荐使用 version 插件)。然后再 merge 到 master 分支上。之后,应该打一个 tag,这个tag就是发布的版本号了。在 release分支 merge 到 master分支之后,版本就发布完成了。接着,再把 release merge 到 develop 上,此时很可能有一些冲突,比如版本号,这时候就需要解决一些冲突,然后再次 merge 到 develop 上。之后删除 release分支。

这样,就完成了一个新版本的发布。可以看到,master 上的代码都是稳定——称为 stable build。

不过,软件都是有bug的。当正式的版本出现了bug,我们需要进行修复,此时就是 hotfix 出场的时候了。

新建的 hotfix 是 base 在 master 分支上的。当 hotfix 被建立的时候,你就可以在 hotfix 分支上进行 bug 的修复,可以修复一个 bug,也可以修复多个bug(具体要看你bug的紧急程度,和你项目的具体情况)。等到你觉得 hotfix 上的修复得差不多了,就可以把 hotfix 分支 merge 到 master 上,然后打一个 tag,标记为一个bug修复的小版本升级。接着,再把 hotfix merge 回 develop。最后,把 hotfix 删除。

这就是 git flow 分支模型的思路。在具体的操作层面, git flow 提供了便利的命令来帮助你完成上述动作。

现在很多团队开始转向 git,一个不错的分支模型就显得比较重要了。git flow 正好解决了这个问题。而且更重要的是,对于想跨团队共建代码的公司来说,分支模型的一致性,无疑会避免很多问题,这一点很关键。

示例在再后一篇给出 :)



网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复