Git版本控制系统之分支与标签(版本)

目录

一、Git分支(Branch)

1.1 分支作用

1.2 四种分支管理策略

1.3 使用案例

1.3.1 指令 

1.3.2 结合应用场景使用

 

二、Git标签(Tag)

2.1 标签作用

2.2 标签规范

2.3 使用案例

2.3.1 指令

2.3.2 使用示例


一、Git分支(Branch)

        当我们谈论版本控制系统时,分支是一个关键的概念。在 Git 中,分支是用来处理不同代码线路的机制,允许你在项目的不同部分之间工作而不影响主要代码线。

1.1 分支作用

        分支是 Git 中用来处理项目中不同功能或特性的独立线路的工具。它允许你在不影响主要项目的同时进行开发、测试和实验。每个分支都是独立的,修改一个分支不会影响其他分支。

应用场景:

  • 新功能开发: 创建一个新的分支,专注于新功能的开发,而不会影响主分支(通常是master)。
  • Bug 修复: 如果在主分支上发现了 bug,可以在一个新分支上进行修复,而不会中断正在进行的开发。
  • 实验性开发: 为了尝试一些实验性的想法,可以创建一个分支,在上面进行实验,然后决定是否将其合并到主分支。

1.2 四种分支管理策略

在Git中,分支有四个主要的环境,通常被称为四种基本的分支管理策略: 

一、主分支(Master/Main)

  • 作用: 主分支通常是项目的主要分支,包含了当前最稳定、可部署的代码。
  • 应用场景: 当开发新功能或修复 bug 时,通常从主分支创建新的分支进行工作。

二、开发分支(Develop):

  • 作用: 开发分支是用于集成各种功能的主分支。当一个开发周期结束时,开发分支通常会合并到主分支,形成一个稳定的版本。
  • 应用场景: 在开发新功能时,从主分支创建一个新的开发分支,完成开发后再将其合并回开发分支。

三、特性分支(Feature):

  • 作用: 特性分支用于开发单个功能或特性。每个特性都有一个对应的特性分支,使得功能的开发独立于主分支和其他特性。
  • 应用场景: 当需要添加新功能时,从开发分支创建一个新的特性分支,完成开发后将其合并回开发分支。

四、发布分支(Release):

  • 作用: 发布分支用于准备发布新版本。在发布分支上进行最后的测试、文档更新和版本号增加等操作。
  • 应用场景: 当开发周期结束时,从开发分支创建一个新的发布分支,准备发布。发布后,将发布分支合并回主分支和开发分支。

        这些环境提供了一种有效的方式来组织团队的工作流,确保代码的稳定性和可维护性。使用这些环境,可以清晰地了解每个分支的目的和状态,从而更轻松地协作和集成代码。这种分支管理策略通常被称为Git Flow,是一种在软件开发中广泛应用的工作流程。

1.3 使用案例

1.3.1 指令 

# 查看本地分支
git branch # 创建新分支
git branch feature-branch# 切换到新分支
git checkout feature-branch# 或者一步到位(创建+切换)
git checkout -b feature-branch# 合并分支到主分支
git checkout master
git merge feature-branch# 删除已合并的分支
git branch -d # 删除远程分支
git push origin --delete dev   # 提交分支 如果远程没有这个分支他会自动创建这个分支
git push origin feature-branch

1.3.2 结合应用场景使用

主分支(Master/Main): 主分支是项目的默认分支,通常包含了最新的稳定版本。在许多项目中,主分支的名称是 mastermain

1、创建并切换分支:你可以创建一个新的分支,这个分支是从当前工作目录的状态创建的,包含了当前工作目录中的所有文件和文件夹。 

2、在分支上工作: 在特定的分支上工作时,你可以进行修改、添加新文件等操作。这些操作不会影响其他分支,因为每个分支都有独立的工作目录。

测试:新建的两个文件添加都暂存区再提交到本地仓库之后,切换分支会是怎样的效果呢?

切换到master之后,原来添加的文件就消失了

 

3、提交分支

就可在gitee远程仓库中查看了

在此分支开发的代码与其他互不相干了,若开发完成可与主分支进行合并

二、Git标签(Tag)

2.1 标签作用

        标签是一个指向特定提交的引用,通常用于标记版本发布。标签可以使你在不同版本之间轻松切换,而不必记住各个提交的哈希值。

应用场景:

  • 版本发布: 在发布一个稳定版本时,可以为该提交打上标签,以便将来可以轻松地找到和检出该版本。
  • 历史记录标记: 在项目的关键点上打标签,以便于回顾项目的历史记录。

2.2 标签规范

在 Git 中,标签的命名规则相对灵活,但有一些推荐的约定和最佳实践:

  1. 版本号: 最常见的标签是用于表示软件版本的。使用语义化版本号是一种常见的做法,其中版本号包括主版本号、次版本号和修订号,形式为 MAJOR.MINOR.PATCH例如:v1.0.0

  2. 前缀: 通常,标签前面加上字母 'v' 作为版本的前缀是一种常见的做法。例如:v2.1.3

  3. 发布候选(Release Candidate): 有时在软件发布前可能有一些预发布版本,可以使用 -rc 或其他类似的标记。例如:v1.0.0-rc

  4. 修订版或修复版本: 有时可能需要对某个版本进行修复,可以通过在版本号后添加修复版本号,如 v1.0.1

  5. 时间戳: 在某些情况下,可以使用时间戳作为标签,特别是在需要唯一性的情况下。例如:v20220101.

  6. 语义化标签: 使用能够清晰表达标签目的的语义化标签。例如:release-2.0, feature-new-login, 等。

注意事项:

  • 避免使用特殊字符,空格或弱引用字符,以免引起不必要的问题。
  • 标签名称对大小写敏感,因此 v1.0V1.0 是两个不同的标签。
  • 在使用标签时要保持一致性,遵循项目内的约定。

        总体而言,标签的命名规则是由项目的团队来定义的。选择一种清晰、有意义、易于理解的命名约定对于项目的长期维护和协作是非常有帮助的。

2.3 使用案例

2.3.1 指令

# 列出所有标签
git tag# 添加标签
git tag v1.0.0# 附注标签: 包含标签的名称、邮箱、日期和标签消息。它是一个更详细的标签类型。
git tag -a v1.0.0 -m "Version 1.0.0"# 删除标签
git tag -d v1.0.0# 删除远程标签(已推送的标签)
git push origin --delete v1.0.0# 推送标签
git push origin v1.0.0# 如果你有多个标签,可以使用 --tags 选项一次性推送所有标签。
git push origin --tags

 

2.3.2 使用示例

这是一个简单的当前版本代码的标签推送:

推送标签后,其他团队成员可以通过拉取最新的标签来获取项目中的特定版本。例如:

git pull origin v1.0.0.20231112_dev

这将获取远程仓库中的 v1.0 标签,并将你的本地仓库切换到这个版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/189457.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下C++调用python脚本实现LDAP协议通过TNLM认证连接到AD服务器

1.前言 首先要实现这个功能,必须先搞懂如何通过C调用python脚本文件最为关键,因为两者的环境不同。本质上是在 c 中启动了一个 python 解释器,由解释器对 python 相关的代码进行执行,执行完毕后释放资源。 2 模块功能 2.1python…

Thinkphp8 - 连接多个数据库

// 数据库连接配置信息connections > [mysql > [// 数据库类型type > mysql,// 服务器地址hostname > 127.0.0.1,// 数据库名database > thinkphp,// 用户名username > env(DB_USER, root),// 密码password >…

NestJS——基于Node.js 服务器端应用程序的开发框架

文章目录 前言什么是 NestJS? 一、NestJS特性?二、使用步骤Typescript 知识后端开发基本知识新建项目目录结构 前言 Nestjs中文文档 什么是 NestJS? Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用…

AD教程 (十三)常见CHIP封装的创建

AD教程 (十三)常见CHIP(贴片)封装的创建 PCB封装是电子设计图纸和实物之间的映射体,具有精准数据的要求,在实际设计中需要通过规格书获取创建封装的数据参数。 PCB封装和实物的大小一致。PCB封装是承载实物…

使用github copilot

现在的大模型的应用太广了,作为程序员我们当然野可以借助大模型来帮我们敲代码。 下面是自己注册使用github copilot的过程。 一、注册github copilot 1. 需要拥有github账号 ,登录github之后,点右侧自己的头像位置,下面会出现…

行为型模式-命令模式

这里写自定义目录标题 模式定义模式场景模式结构缺点优点总结 模式定义 将一个 请求封装为一个 对象,可以使用不同的请求进行参数化;对请求排队或者记录请求日志以及 支持可撤销的操作。别名动作模式或事务模式 模式场景 经常向某些对象发送请求&…

QDockWidget组件的隐藏与显示(按钮控制)

本文内容包括: 1、控制按钮的点击效果美化; 2、用按钮控制QDockWidget组件的隐藏与显示; 参考前提:已有.ui文件、已有QDockWidget组件、已有一个控制QDockWidget组件的按钮 实现效果: DockWidget组件的隐藏与显示&…

微信支付服务商消费者投诉及时处理与商户违规及时通知,支持多服务商

大家好,我是小悟 微信直连商户处理消费者投诉的功能解决了很多商户对于投诉处理不及时而导致商户号出现异常的问题,可以说解决了实实在在的问题。 很多小伙伴私信说自己是服务商角色,也需要微信支付服务商处理消费者投诉的功能,…

复盘一个诡异的Bug

该Bug的诡异之处在于这是一个由多种因素综合碰撞之后形成的综合体。纵观整个排查过程,一度被错误的目标误导,花费大量功夫后才找到问题点所在,成熟的组件在没有确凿证据之前不能随意怀疑其稳定性。 前言 此前在接入两台粒径谱仪(…

【Redis】set 集合

上一篇:list 列表 https://blog.csdn.net/m0_67930426/article/details/134364315?spm1001.2014.3001.5501 目录 Sadd Smembers Sismember Scard Srem ​编辑Srandomember Spop Smove 集合类 Sdiff Sinter Sunion 官网 https://redis.io/commands/?…

2.如何实现API统一响应-web组件篇

文章目录 1. 统一响应1.1 CommonResult 1. 统一响应 前端调用api接口获得统一的响应: 成功,返回成功的状态码和数据;失败,返回失败的状态码和错误提示。 在标准的 RESTful API 的定义,是推荐使用 HTTP 响应状态码 (…

从0开始python学习-33.夹具@pytest.fixture(scope=““,params=““,autouse=““,ids=““,name=““)

目录 1. 创建夹具 1.1 pytest方式 1.2 unittest方式 2. 使用夹具 2.1 通过参数引用 2.2 通过函数引用 3. 参数详解 3.1 scope:作用域 3.2 params-参数化 3.3 autouseTrue表示自动使用,默认为False 3.4 ids:设置变量名 3.5 name&am…

DevChat智能编程助手:小白也能轻松上手的开发利器

DevChat智能编程助手:小白也能轻松上手的开发利器 一、DevChat介绍1.1 DevChat简介1.2 DevChat特点1.3 DevChat官网 二、注册DevChat账号2.1 访问DevChat官网2.2 注册账号2.3 复制Access Key2.4 登录DevChat 三、安装DevChat3.1 打开VS Code软件3.2 安装DevChat3.3 …

【Java 进阶篇】Java与JQuery:探秘事件绑定、入口函数与样式控制

在现代的Web开发中,Java和JQuery是两个不可或缺的角色。Java为我们提供了强大的后端支持,而JQuery则是前端开发的得力助手。本篇博客将围绕Java和JQuery,深入探讨事件绑定、入口函数和样式控制,带你进入前端开发的奇妙世界。 Jav…

【仿真动画】人机协作机器人自动化产线仿真动画欣赏

人机协作机器人自动化产线仿真动画 动画部分思维导图 机器人自动化产线仿真动画是利用三维动画技术对机器人自动化产线进行仿真模拟,以直观、形象的方式展示产线的运行情况。它具有以下作用: 提高沟通效率 机器人自动化产线的设计、实施和维护涉及多个部…

函数极限求解方法归纳

1、连续函数直接代入值(加减不可以部分代入值) 例题1 配凑构造等价无穷小 等价无穷小 注意:不要在加减中部分使用等价无穷小,可以利用拆极限的方式求,拆出来的每一部分都要有极限,如果有一部分没有极限就是…

Vue3+NodeJS 接入文心一言, 发布一个 VSCode 大模型问答插件

目录 一&#xff1a;首先明确插件开发方式 二&#xff1a;新建一个Vscode 插件项目 1. 官网教程地址 2. 一步一步来创建 3. 分析目录结构以及运行插件 三&#xff1a;新建一个Vue3 项目&#xff0c;在侧边栏中展示&#xff0c;实现vscode插件 <> vue项目 双向消息传…

音视频基础知识

图像&#xff08;YUV RGB&#xff09; ​​​​​​​​​​​​​​这个讲的比较好 RGB颜色编码 图像显示主要是由像素组成&#xff0c;每个像素点的颜色组成都是采用RGB格式&#xff0c;RGB就是红、绿、蓝&#xff0c;RGB分别取不同的值&#xff0c;展示不同的颜色。 YUV…

FD-Align论文阅读

FD-Align: Feature Discrimination Alignment for Fine-tuning Pre-Trained Models in Few-Shot Learning&#xff08;NeurIPS 2023&#xff09; 主要工作是针对微调的和之前的prompt tuining&#xff0c;adapter系列对比 Motivation&#xff1a; 通过模型对虚假关联性的鲁棒…