简介
我们的工作流工作流仍然用中央仓库作为所有开发者的交互中心。和其它的工作流一样,开发者在本地工作并push分支到要中央仓库中。
长期分支
相对使用仅有的一个master分支,我们的工作流使用2个分支来记录项目的历史。online分支存储了正式发布的历史,而master分支作为功能的集成分支。这样也方便online分支上的所有提交分配一个版本号。
online分支
online分支作为上线分支, 包含了正式发布的全部代码, 其中, 每次上线都会标记上以版本号命名的tag.
master分支
master分支作为功能集成分支, 包含了全部开发完毕的最新代码.
功能分支
每个新功能位于一个自己的分支,这样可以push到中央仓库以备份和协作。但功能分支不是从master分支上拉出新分支,而是使用online分支作为父分支。当新功能完成时,在功能分支本身完成基础的测试工作,测试通过后合并到master分支,在master分支上,完成模拟线上环境测试的工作。注意:测试分为基础功能测试以及模拟线上环境测试两个步骤,在完成每个步骤之前,不应该将代码pull到其他分支。当两轮测试完成后,功能分支上的代码再被同步到online分支上,完成最终部署。
维护分支
维护分支或说是热修复(hotfix)分支用于生成快速给产品发布版本(production releases)打补丁,这是唯一可以直接从online分支fork出来的分支。修复完成,修改应该马上合并回online分支和master分支(当前的发布分支),online分支应该用新的版本号打好Tag。
为Bug修复使用专门分支,让团队可以处理掉问题而不用打断其它工作或是等待下一个发布循环。你可以把维护分支想成是一个直接在online分支上处理的临时功能。
一些约定
用于新建发布分支的分支: master 用于合并的分支: online 开发分支命名: feature/* 维护分支命名: hotfix/*
示例
下面的示例演示本工作流如何用于管理单个发布循环。假设你已经创建了一个中央仓库。
创建开发分支
第一步为master分支配套一个online分支。简单来做可以本地创建一个空的online分支,push到服务器上:
git branch online
git push -u origin online
以后这个分支将会包含了项目的发布历史,而master分支将则包含了全部历史。其它开发者这时应该克隆中央仓库,建好online分支的跟踪分支:
git clone ssh://user@host/path/to/repo.git
git checkout -b online origin/online
现在每个开发都有了这些历史分支的本地拷贝。
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h63714.shtml