聊聊Git操作规范之tag的使用技巧

本文详细介绍了项目中的分支(master, develop, release, hotfix)使用规范,以及打tag的场景、命名规则和版本类型。重点讲解了如何维护稳定性和版本控制,适用于软件开发团队进行版本管理和协作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分支规范

首先分享一下我们的分支规范,然后再介绍摸索出的打tag的规范。

常用分支

master

  • master : 主分支 , 最终在master分支对外发布,
  • 此分支只能从其他分支合并,不能再这个分支直接修改
  • 另外所有在master分支的推送应该打标签做记录,方便追溯
  • 例如release合并到master

develop

  • 主测试分支 , 基于master分支创建
  • 包含所有要发布到下一个版本的代码
  • 只能从其他分支合并
  • release 分支开发完成合并到develop

release

  • 开发分支, 基于master分支创建
  • 主要用于新需求新功能的开发
  • 功能开发完毕后合到develop分支发布测试环境,测试通过后合并到master发布生产环境
  • release可同时存在多个

hotfix

  • 补丁分支 , 基于master分支创建
  • 主要用于对线上的版本进行BUG修复
  • 修复完毕后合并到develop分支发布测试环境,测试通过后合并到master发布生产环境
  • 属于临时分支 , 补丁修复上线后可选删除

使用

  1. 初始化项目 , 默认创建master分支
  2. 从master拉取第一个develop分支
  3. 从master拉取第一个release分支(多个开发人员拉取多个release同时进行并行开发 , 互不影响)
  4. release分支完成后 , 合并到develop
  5. 从develop分支打tag进行提测,提测过程中在原release分支修改BUG,重复步骤4
  6. 测试通过后合并release到master,基于master分支打tag发布生产环境.此时可删除当前release分支
  7. 上线之后若发现线上BUG , 从master拉取hotfix进行BUG修改
  8. hotfix通过测试上线后可选删除当前hotfix

注意

  1. 发布线上时一定是master合并开发分支,develop分支可能存在其它未测试通过代码
  2. 两个分支进行合并时一定要拉取一下最新代码

tag规范

打tag场景

  1. 在测试同学线上回归测试之后一定要给master分支添加tag,方便后续有需求时快速回滚到指定的稳定版本
  2. 当一个代码库在同一个时间段有多个需求要按顺序上线时,运维同学需要通过tag标记区分要构建的代码,这时候需要添加tag。

tag命名规范

版本类型_版本号

比如:stable_v1.1.0

意为:稳定版v1.1.0

版本类型说明

  • pre类型的tag应该在测试同学回归测试通过,打完stable类型或者hotfix类型的tag之后删除。
  • 代码仓库只保留stable类型和hotfix类型的tag,方便回滚到稳定版本;不保留pre这种过渡类型的tag。

版本号设置规范

比如版本号:v1.0.0

  • 第一个数字1,代表大版本,默认从1开始,大版本更新时才递增
  • 第二个数字0,代表小版本更新,默认从0开始
  • 第三个数字0,代表补丁版本,默认从0开始

场景举例

注意:在打tag的时候需要设置message,写清楚注释。

新需求

  • tag name命名规范:stable_v1.0.0
  • tag message:云仓商品添加销量字段

修复bug

  • tag name 命名规范:hotfix_v1.0.1
  • tag message:修复XXX bug

重大版本更新

  • tag name 命名规范:stable_v2.0.0
  • tag message:项目整体重构后上线

特殊情况

预发布环境,需要按顺序构建的:

  • tag name 命名规范:pre_v1.0.1
  • tag message:预发布tag:商品中心上线
  • tag name 命名规范:pre_v1.0.2
  • tag message:预发布tag:新渠道上线
    希望分享的知识都可以帮助到大家,也希望大家学了都能有收获!

 

### Git 分支管理与打标签教程 #### 创建和切换分支 创建新的分支并切换到该分支可以使用如下命令: ```bash git checkout -b new-feature-branch ``` 这条命令组合了 `git branch` 和 `git checkout` 命令,既创建了一个名为 `new-feature-branch` 的新分支又切换到了这个新分支上[^1]。 #### 合并与删除分支 当特征开发完成后,可以通过合并操作将更改集成回主干或其他长期存在的分支中。假设要将 `feature-A` 合并入 `main` 分支,则先切换至目标分支再执行合并命令: ```bash git checkout main git merge feature-A ``` 如果确认不再需要某个已合并过的分支,可安全地将其删除以保持仓库整洁: ```bash git branch -d feature-A ``` 这有助于减少不必要的复杂度,并使版本历史更容易理解[^2]。 #### 使用标签标记重要提交 给特定的提交加上永久性的名称(即标签),这对于记录里程碑式的发布版本特别有用。例如,为当前 HEAD 添加一个带有消息的新轻量级标签: ```bash git tag v1.0.0 -m "Version 1 release" ``` 推送本地标签到远程服务器以便共享这些标签信息: ```bash git push origin --tags ``` 此过程确保所有协作者都能访问相同的标签数据集[^5]。 #### 推荐的最佳实践总结 - **单主线模型**:适用于小型项目或团队规模较小的情况;只有一个主要的工作线程——通常是默认的 master 或者 main 分支。 - **特性分支模式**:每个开发者都在自己的短命分支上实现具体的功能点,之后再合回到主线上去。这种方式促进了并行化作业而不干扰彼此间的进展[^3]。 - **Git Flow 工作流**:这是一种更为结构化的多分支策略,它定义了一套严格的规则用于处理特性、修复补丁、预发行准备等工作流程下的分支活动。尽管较为繁琐但对于大型企业级应用来说提供了更高的灵活性和支持能力[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值