Git分支管理规范

关于Git的一些分支管理规范。。。

一、分支与角色说明

Git 分支类型

master 分支(主分支) 稳定版本

develop 分支(开发分支) 最新版本

release 分支(发布分支) 发布新版本

hotfix 分支(热修复分支) 修复线上Bug

feature 分支(特性分支) 实现新特性

Gitlab 角色与项目角色对应关系

Owner(拥有者) Git 管理员

Master(管理员) 开发主管

Developer(开发者) 开发人员

Reporter(报告者) 测试人员

Guest(观察者) 其他人员

二、分支简明使用流程

1、每开发一个新功能,创建一个 feature 分支,多人在此分支上开发;

2、提测时,将 master 分支和需要提测的分支汇总到一个 release 分支,发布测试环境;

3、发现bug时,在feature分支上debug后,再次回到2;

4、发布生产环境后,将 release 分支合并到 master 分支,删除release分支;

 

三、创建新项目(master分支)

开发主管提交代码初始版本到master 分支,并推送至Gitlab系统;

开发主管在Gitlab 系统中设置master 分支为Protectd 分支(保护分支);

Protected 分支不允许Developer 角色推送代码,但Master 角色可以推送代码;

四、进行项目开发(develop分支)

开发主管在master 分支上创建develop 分支(开发分支),并推送至Gitlab系统;

master 分支与develop 分支一样,有且仅有一个;

对于非并行项目可以使用develop分支开发方式,对于多人并行开发项目,使用feature分支开发方式,但develop和feature开发方式不应同时使用;

五、开发新特性(feature分支)

每个新需求或新的研究创建一个feature 分支;

命名规范:

f-分支创建日期-新特性关键字,例如:f-20150508-满立减;

推荐使用feature 分支,但feature 分支的生命周期不能跨一次迭代;

六、发布测试环境(release分支)

开发负责人需完成以下任务:

1. 确认要发布的feature 分支上的功能是否开发完毕并提交;

2. 创建release 分支(发布分支),将所有要发布的分支逐个合并到release分支,有如下情况:

①.feature分支(可能有多个)

②.master分支(期间可能有其他release版本更新到了master)

3. 命名规则:r-分支创建日期-新特性和待发布版本号,例如:r-201505081712-买立减v1.0.0,版本可根据需要添加;

4. 删除本次发布的所有feature分支;

5. 发布到测试环境,通知测试;

七、修复待发布版本中的Bug(feature分支)

如果发现bug,开发人员在feature 分支上修复测试人员提交给自己的bug,修复完成后,由负责人再次创建 release 分支,发布测试环境。

八、发布正式环境

开发负责人需完成以下任务:

1. 根据修复后的release分支再次将master合并,打包发布生产环境;

2. 确认发布成功,并线上验收通过后,将release分支合并到master分支;

3. 在master分支上创建标签,命名规则:tag-日期-新特性和版本号,例如:tag-201505081712-买立减v1.0.0,版本可根据需要添加,作为发版里程碑标记;

4. 删除对应release 分支;

九、修复线上Bug(hotfix分支)

线上的不同版本出现了bug怎么办?开发负责人需完成以下任务:

1. 从master 分支某个tag 上创建一个hotfix 分支(热修复分支),一般是最新的tag应该和当前生产环境对应;

命名规则:h-分支创建日期-bug名称和待发布版本号,例如:h-201705081614-购物车点击没反应v1.0.1;

2. 开发人员完成Bug 修复,提交hotfix分支到测试环境验收通过;

3. 再次发布正式环境流程;

4. 将hotfix 分支合并到master分支;

5. 在master分支上创建标签,命名规则:tag-日期-新特性和版本号,例如:tag-201505081712-买立减v1.0.0,版本可根据需要添加,作为发版里程碑标记;

6. 删除hotfix 分支;

十、Git 的特别注意事项

由于 git 分支是基于指针的概念,所以分支速度非常快,当多个分支时,实际指针指向的是同一个文件,当文件被修改时,使用的是暂存区保存修改,此时并未提交到相应分支。

所以切换分支的时候,暂存区只有一个,所以切换分支之前,一定要将所有修改commit到当前分支,否则会在其他分支看到修改的内容,引起误解。

以上规范仅供参考,具体实践请依据团队具体情况自行调整。。。

原文地址:https://www.cnblogs.com/imyalost/p/9301732.html

时间: 2024-08-30 01:01:41

Git分支管理规范的相关文章

团队项目的Git分支管理规范

原文地址: http://blog.jboost.cn/2019/06/17/git-branch.html 许多公司的开发团队都采用Git来做代码版本控制.如何有效地协同开发人员之间,以及开发.测试.上线各环节的工作,可能都有各自的流程与规范.本文分享的是作者一直沿用的团队项目Git分支管理规范,希望给有缘阅读的人以参考,如果有更好的实践,也欢迎探讨.交流. 分支管理 创建项目时(一般是服务型项目,工具型或辅助型项目可以简单一些),会针对不同环境创建三个常设分支: develop:开发环境的稳

项目Git分支管理规范

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 一.分支管理 项目中,一般会创建三个常用分支: develop:开发环境的稳定分支,公共开发环境基于该分支构建. pre-release:测试环境的稳定分支,测试环境基于该分支构建. master:生产环境的稳定分支,生产环境基于该分支构建. 日常开发中,一般会创建两类分支: 功能(feature)分支:为开发某个特定功能,从develop分支上面分出来的.开发完成后,要merge到develop分支.功能分支的命名

git 分支管理规范

保证master分支永远处于可部署的状态.禁止自接提交代码到master分支 开发分支基于master分支创建,命名规范如下: 如果是功能需求,分支命名为feature/xxx,xxx要具有描述性 如果是线上bugfix,分支命名为hotfix/xxx,xxx要具有描述性 需要发布的时候基于master分支新拉一个release分支,并提交一个Merge Request申请将feature分支合并到release分支,指定一个人进行code review,没问题之后再进行合并,然后使用relea

Git工程开发实践(四)——Git分支管理策略

Git工程开发实践(四)--Git分支管理策略 一.Git版本管理的挑战 Git是非常优秀的版本管理工具,但面对版本管理依然有非常大得挑战.工程开发中,开发者彼此的代码协作必然带来很多问题和挑战:A.如何开始一个Feature开发,而不影响其它Feature?B.由于很容易创建新分支,分支多了如何管理,时间久了,如何知道每个分支是干什么的?C.哪些分支已经合并回了主干?D.如何进行Release的管理?开始一个Release的时候如何冻结Feature, 如何在Prepare Release的时

[廖雪峰] Git 分支管理策略

通常,合并分支时,如果可能,Git 会用 Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制 禁用 Fast forward 模式,Git 就会在 merge 时生成一个新的 commit,这样,从分支历史上就可以看出分支信息. 下面我们实战一下 --no-ff 方式的 git merge: 首先,仍然创建并切换 dev 分支: $ git checkout -b dev Switched to a new branch 'dev' 修改 readme.txt

GIt分支管理策略

大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 CentOS 5.5 x86_64,Git 服务器版本:git version 1.8.2.1,客户端版本:git version 1.9.2.msysgit.0.所有软件请到这里下载:http://msysgit.github.io/. 1.前言 在上一篇博客中我们主要讲解了Git 远程仓库,相信大家对

git分支管理与冲突解决(转载)

Git 分支管理和冲突解决 原文:http://www.cnblogs.com/mengdd/p/3585038.html 创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称. 当前检出分支的前面会有星号. git branch newname 在当前检出分支上新建分支,名叫newname. git checkout newname 检出分支,即切换到名叫newname的分支. git checkout –b newname master 这个命令将上面两个命令合并:在

[转]Git分支管理策略

如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件,Git有很多优点.其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便.有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因此非常快捷易用. 但是,太方便了也会产生副作用.如果你不加注意,很可能

Github操作与git分支管理

通过今天学习的web新知识和复习Sublime Text的基础知识,让我收获颇多,疑惑也多.尤其是在做用 git 和gitHub来管理自己的代码的题目内容时候遇到了许多的疑问,首先在注册用户时都不太懂,在老师提示和指导下才慢慢理解和完成题目. 了解到git分支管理,感觉这个程序可以给我们带来非常多的便利和快捷.使用的标签也没有很复杂,git程序的操作并不需要网络,而应用到的软件才需要,在团队开发中,遵循一个合理.清晰的开发使用流程是很重要的,不然每人乱写项目会变得难以协调和维护.所以将一个项目文