首页 GIT分支管理是一门艺术

GIT分支管理是一门艺术

举报
开通vip

GIT分支管理是一门艺术  1     GIT,在技术层面上,绝对是一个无中心的分布式版本控制系统,但在管理层 面上,我建议你保持一个中心版本库。          2     我建议,一个中心版本库(我们叫它origin)至少包括两个分支,即“主分支 (master)”和“开发分支(develop)”          3     要确保:团队成员从主分支(master)获得的都是处于可发布状态的代码,而从 开发分支(develop)应该总能够获得最新开发进展的代码。     4     在一个团队开发协作中,我...

GIT分支管理是一门艺术
 1     GIT,在技术层面上,绝对是一个无中心的分布式版本控制系统,但在管理层 面上,我建议你保持一个中心版本库。          2     我建议,一个中心版本库(我们叫它origin)至少包括两个分支,即“主分支 (master)”和“开发分支(develop)”          3     要确保:团队成员从主分支(master)获得的都是处于可发布状态的代码,而从 开发分支(develop)应该总能够获得最新开发进展的代码。     4     在一个团队开发协作中,我建议,要有“辅助分支”的概念。     5     “辅助分支”,大体包括如下几类:“管理功能开发”的分支、“帮助构建可发布 代码”的分支、“可以便捷的修复发布版本关键BUG”的分支,等等     6     “辅助分支”的最大特点就是“生命周期十分有限”,完成使命后即可被清除。     7     我建议至少还应设置三类“辅助分支”,我们称之为“Feature branches”,“Release branches”,“Hotfix branches”。     至此,我们形成了如下这张最重要的组织组,包含了两个粗体字分支(master/ develop)和三个细体字分支(feature/release/hotfixes)。          8     “Feature branches”,起源于develop分支,最终也会归于develop分支。     9     “Feature branches”常用于开发一个独立的新功能,且其最终的结局必然只有 两个,其一是合并入“develop”分支,其二是被抛弃。最典型的“Fearture branches”一定是存在于团队开发者那里,而不应该是“中心版本库”中。     10     “Feature branches”起源于“develop”分支,实现方法是: git checkout -b myfeature develop     11     “Feature branches”最终也归于“develop”分支,实现方式是: 以下是代码片段: git checkout devleop git merge --no-ff myfeature (--no-ff,即not fast forward,其作用是:要求git merge即使在fast forward条件 下也要产生一个新的merge commit) (此处,要求采用--no-ff的方式进行分支合并,其目的在于,希望保持原 有“Feature branches”整个提交链的完整性) git branch -d myfeature git push origin develop          12     “Release branch”,起源于develop分支,最终归于“develop”或“master”分支。 这类分支建议命名为“release-*”     13     “Relase branch”通常负责“短期的发布前准备工作”、“小bug的修复工作”、“版 本号等元信息的准备工作”。与此同时,“develop”分支又可以承接下一个新功 能的开发工作了。     14     “Release branch”产生新提交的最好时机是“develop”分支已经基本到达预期的 状态,至少希望新功能已经完全从“Feature branches”合并到“develop”分支了。     15     创建“Release branches”,方法是: 以下是代码片段: git checkout -b release-1.2 develop ./bump-version.sh 1.2 (这个脚本用于将代码所有涉及版本信息的地方都统一修 改到1.2,另外,需要用户根据自己的项目去编写适合的bump-version.sh) git commit -a -m "Bumped version number to 1.2"     16     在一段短时间内,在“Release branches”上,我们可以继续修复bug。在此阶 段,严禁新功能的并入,新功能应该是被合并到“develop”分支的。     17     经过若干bug修复后,“Release branches”上的代码已经达到可发布状态,此 时,需要完成三个动作:第一是将“Release branches”合并到“master”分支,第 二是一定要为master上的这个新提交打TAG( 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 里程碑),第三是要将“Release branches”合并回“develop”分支。 git checkout master git merge --no-ff release-1.2 git tag -a 1.2 (使用-u/-s/-a参数会创建tag对象,而非软tag) git checkout develop git merge --no-ff release-1.2 git branch -d release-1.2     18     “Hotfix branches”源于“master”,归于“develop”或“master”,通常命名 为“hotfix-*”     19     “Hotfix branches”类似于“Release branch”,但产生此分支总是非预期的关键 BUG。     20     建议设立“Hotfix branches”的原因是:希望避免“develop分支”新功能的开发 必须为BUG修复让路的情况。          21     建立“Hotfix branches”,方法是: git checkout -b hotfix-1.2.1 master ./bump-version.sh 1.2.1 git commit -a -m "Bumpt version to 1.2.1" (然后可以开始问题 修复工作) git commit -m "Fixed severe production problem" (在问题修 复后,进行第二次提交)     22     BUG修复后,需要将“Hotfix branches”合并回“master”分支,同时也需要合并 回“develop”分支,方法是: git checkout master git merge --no-ff hotfix-1.2.1 git tag -a 1.2.1 git checkout develop git merge --no-ff hotfix-1.2.1 git branch -d hotfix-1.2.1     23     还记得文章开始时的那张大图么,我建议你把这幅大图从这里下载下来,打 印出来,贴在你写字台的墙壁上,好处不言而喻。     over~
本文档为【GIT分支管理是一门艺术】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_557284
暂无简介~
格式:pdf
大小:462KB
软件:PDF阅读器
页数:9
分类:互联网
上传时间:2012-10-04
浏览量:7