介绍
这是我们团队的 Git 分支管理规范。每个人对工具的使用往往各有偏好,各种方法各有利弊,无所谓对错。但涉及团队协作的方面需要有一些一致的规范,所以请大家务必遵守。
除了一致性之外,这个规范的目的是以下几点:
- 确保可以轻易确定特定时间发布或运行的版本。在新发布的程序存在重大缺陷时,可以尽快 rollback 到上一个稳定版本。
- 在需要修复紧急 bug 并尽快发布时,可以只发布必要的 bugfix 而不同时发布还不应发布的其他改动。
branch 和 tag
每个官方的 repo(leancloud/
下的都是官方 repo)有且仅有以下的 branch 和 tag。
Branch: master
和 release
。其中 master
对应目前的开发分支,所有的 pull request 都应该发到这个分支。release
是当前发布的分支,在这个分支只能增加从 master
cherrypick 过来的 commit。详见本文后面的说明。
Tag: 对应每个发布版本的 tag。SDK 和应用程序的 tag 遵照 <major>.<minor>.<patch>
的命名,如 2.5.1
;服务端程序的 tag 以发布的日期命名,如 2014.11.13
,如果有 bugfix,则在后面增加小写字母,如 2014.11.13
后是 2014.11.13a
,然后是 2014.11.13b
。
目前还有部分 repo 包含多个独立部署的项目(如 uluru-platform
)。在这样的 repo 打 tag 时需要附上项目名做前缀,如 bigquery-2.5.1
。但我们需要逐步把这些项目拆分到独立的 repo。
发布新版流程
- 确保所有要发布的 pull request 都已经 merge 到
master
; - 使用
master
branch 的代码进行测试,如果发现 bug,把对应的 bugfix merge 到master
; - 删除旧的
release
branch,并从当前的master
创建新的release
branch; - 在 Jenkins 上从
release
branch 发起新的 build 并发布; - 发布完成后在当前的
release
branch 打上对应版本的 tag。
Bugfix 流程
这里的 bugfix 指的是修复已经发布的程序(release
branch)中的缺陷。master
里的 bug 请直接 merge bugfix 到 master
。
- 如果此缺陷在
master
中还存在,请先 merge bugfix 到master
,否则跳到下一步; - 在
release
branch 从master
cherrypick 修复该缺陷的一个或多个 commit; - 在 Jenkins 上发布当前
release
branch; - 发布完成后在当前的
release
branch 打上递增的 tag。比如,如果上一个 tag 是2.5.1
,这个 tag 应该是2.5.2
;如果上一个是2014.11.13
,这个就是2014.11.13a
。
其他
并不是每个 bug 都有专门发布 bugfix 版的必要,对于不紧急的 bug,可以在 master
里 fix 后随下一个版本发布。
在一个官方 repo 下只应该有以上说的 branch 和 tag,在开发过程中使用到的 feature branch 等请都放在个人的 fork,一律通过向 master
发 pull request 的方式给官方 repo 提交代码。
相关推荐
内容概要:文档详细介绍了针对公司内部项目的 Git 分支管理和版本发布规范,涵盖版本分类及其驱动源,分支分类及命名规则,不同情况下代码分支的合并及发布流程,强调了分支间的流转规则与发版前后的注意事项。...
"SVN并行开发分支管理指南"可能涵盖了如何设置和维护分支以便进行并行开发的详细步骤。这通常包括以下环节: 1. **创建分支**:使用`svn copy`命令从trunk创建一个新分支,为新功能或修复任务提供一个安全的工作...
VCS,全称为Version Control System,是版本控制系统,它用于跟踪和管理软件开发中的源代码和其他文件的变更。VCS管理对于任何项目都是至关重要的,因为它确保了团队成员之间的协作效率,防止了代码冲突,并提供了...
行最终测试和调整)、特性分支(开发新功能)和修复分支(修复特定问题)。Tag:标记目录,用于保存特定版本的代码,通常代表一个正式发布的版本,比如1.0.0正式版。Tag是不可变的,一旦创建,不应再修改。 1.2 ...
3. **版本控制**:理解TFS的版本控制机制,如何创建分支、合并代码以及解决冲突。 4. **工作项管理**:定义和定制工作项类型,跟踪项目进度,以及通过查询和报表进行分析。 5. **持续集成**:配置和管理Build服务器...
### MATLAB下载安装、仿真实验报告撰写及项目源代码管理指南 #### 一、MATLAB的下载与安装 1. **获取MATLAB** - **官方网站下载**:访问MathWorks官网(https://www.mathworks.com/products/matlab.html),根据...
VSS版本使用管理指南主要涉及的是Visual SourceSafe (VSS)这一版本控制系统在软件开发中的应用和管理。VSS是一款由Microsoft开发的源代码管理工具,尤其适用于小型团队的项目协作。以下是关于VSS及其使用的一些关键...
例如,Git是最为广泛使用的版本控制系统之一,它具有分支管理、合并冲突和代码审查等功能。这款小工具可能也集成了类似Git的工作流程,让开发者在本地环境中就能方便地进行版本控制操作。 其次,代码片段管理是该...
主分支 (main 或 master): 主要的生产代码分支。始终保持稳定,不允许直接在主分支上开发或修复 bug。 开发分支 (develop): 集成新功能和改进,测试完成后合并到主分支。 功能分支 (feature/): 每个新功能开发一个...
Git原理详解与实操指南\pdf\10 分支管理:掌握快速切换分支和新建分支能力-专栏. Git原理详解与实操指南\pdf\11 文件忽略进阶:忽略已加入版本控制器的文件-专栏. Git原理详解与实操指南\pdf\12 比较分支差异:展示...
本指南将详细讲解 SVN 的基本概念、安装过程以及管理员如何进行用户管理和权限控制。 1. **Subversion 简介** - **Subversion 简介**:Subversion 是一个开源的版本控制系统,旨在替换过时的 CVS 系统。它提供了一...
本文来自segmentfault,文章介绍了创建与合并分支、分支的操作管理以及多人协作开发等相关知识。利用分支就可以实现多人开发的伟大模式,从而提高生产效率。在整个GIT之中,主分支(master)主要是作为程序的发布使用...
这些命令是Git日常操作的核心,通过学习和实践,读者将能掌握代码版本的创建、提交、分支管理和合并等基本操作。 分支管理是Git的一大亮点。《Git权威指南》深入讨论了如何使用Git的分支模型进行敏捷开发,包括创建...
GitLab操作指南.pptx文件可能包含了以下内容:Git基础概念和命令详解,GitLab注册与项目创建,SSH密钥配置,仓库的克隆与推送,分支管理,Merge Request的使用,CI/CD的基本配置,以及如何利用GitLab进行团队协作等...
对于大型项目,分支管理是非常重要的。VSS允许创建分支,以便在不影响主分支的情况下进行实验性开发。一旦分支开发完成,可以使用“合并”功能将分支的更改合并回主分支。 **8. 恢复与备份** VSS提供了恢复误删文件...
通过这个程序,用户可以实现对代码库的增删改查、分支操作、合并、提交、回退等基本功能。它可能还集成了代码比较、冲突解决以及日志查看等功能,方便用户跟踪代码的变化历史。 "Readme-说明.html"是dmglq的使用...
《开发者指南源代码》这本书的源代码集合,旨在为iOS开发者提供一个全面的学习资源,无论你是初学者还是经验丰富的专业人士,都可以从中受益匪浅。源代码通常包含了完整的项目结构、函数实现、类定义以及注释,是...