欢迎来到天天文库
浏览记录
ID:33400172
大小:148.85 KB
页数:10页
时间:2019-02-25
《git工作流指南-gitflow工作流》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Git工作流指南:Gi廿low工作流这节介绍的Gitflow工作流借鉴自在nvie的VincentDriessenoGitflow工作流定义了一个围绕项目发布的严格分支模型。虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架。Gitflow工作流没有用超出功能分支工作流的概念和命令,而是为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互。除了使用功能分支,在做准备、维护和记录发布也使用各自的分支。当然你可以用上功能分支工作流所有的好处:PullRequests.隔离实验性开发和
2、更高效的协作。工作方式GitfSw工作流仍然用中央仓库作为所有开发者的交互中心。和其它的工作流一样,开发者在本地工作并push分支到要中央仓库中。历史分支相对使用仅有的一个master分支.Gitflow工作流使用2个分支来记录项目的历史。master分支存储了正式发布的历史,而develop分支作为功能的集成分支。这样也方便master分支上的所有提交分配一个版本号。MailerDevelopvC.1vO-2心I——}剩下要说明的问题围绕着这2个分支的区别展开。功能分支每个新功能位于一个自己的分支,这样可以push到中
3、央仓库以备份和协作。但功能分支不是从master分支上拉出新分支,而是使用develop分支作为父分支。当新功能完成时,合并回develop分支。新功能提交应该从不j[接与master分支交互。v0.2vO.1IMasterDevolop、…■—■一■■■■■・■■・・•
4、Ix/、ChqC-v1°FeatureFeature注意,从各种含义和目的上来看,功能分支加上develop分支就是功能分支工作流的用法。但Gitflow工作流没有在这里止步。发布分支FegtureJ…O今CHOO一旦develop分支上有了做一次发布
5、(或者说快到了既定的发布日)的足够功能,就从develop分支上fork—个发布分支。新建的分支用于开始发布循环,所以从这个时间点开始之后新的功能不能再加到这个分支上——这个分支只应该做Bug修复、文档生成^其它面向发布任务。一旦对外发布的工作都完成了发布分支合并到master分支并分配一个版本号打好Tago另外,这些从新建发布分支以来的做的修改要合并回develop分支。使用一个用于发布准备的专门分支,使得一个团队可以在完善当前的发布版本的同时,另一个团队可以继续开发下个版本的功能。这也打造定义良好的开发阶段(比如,可
6、以很轻松地说,『这周我们要做准备发布版本4.0』,并且在仓库的目录结构中可以实际看到)。常用的分支约定:用于新建发布分支的分支:develop用于合并的分支:master刁〉支命名:release-*或release/*维护分支MasterReleaseDevelopFeatureFeatureV0.2维护分支或说是热修复(hotfix)分支用于生成快速给产品发布版本(productionreleases)打补丁,这是唯一可以直master分支fork出来的分支。修复完成,修改应该马上合并回master分支和develo
7、p分支(当前的发布分支)zmaster分支应该用新的版本号打好Tag。为Bug修复使用专门分支,让团队可以处理掉问题而不用打断其它工作或是等待下一个发布循环。你可以把维护分支想成是一个直接在master分支上处理的临时发布。示例下面的示例演示本工作流如何用于管理单个发布循环。假设你已经创建了f中央仓库。创建开发分支第_步为master分支配套一个develop分支。简单来做可以本地仓!)建一空的develop分支,push到服务器上:gitbranchdevelopgitpush-uorigindevelop以后这个分支
8、将会包含了项目的全咅B历史,而master分支将只包含了部分历史。其它开发者这时应该克隆中央仓库,»develop分支的跟踪分支:gitclonessh://user@host/path/to/repo.gitgitcheckout-bdeveloporigin/develop现在每个开发都有了这些历史分支的本地拷贝。小红和小明开始开发新功能30这个示例中,小红和/」朋开始各自的功能开发。他们需要为各自的功能创建相应的分支。新分支不是基于master分支,而是应该基于develop分支:gitcheckout-bsome
9、-featuredevelop他们用老套路添加提交到各自功能分支上:编辑、暂存、提交:gitstatusgitaddgitcommit小红完成功能开发添加了提交后,小红觉得她的功能0K了。如果团队使用PullRequests,这时候可以发起一个用于合并到develop分支。否则她可以直接合并到她本地的develop分
此文档下载收益归作者所有