当前位置: 首页 > news >正文

Git分支与Git标签的介绍及其场景应用

目录

一、Git分支

1.1 定义

1.2 基本概念

1.3 特点与优势

1.4 Git分支操作命令

1.4.1 查看分支

1.4.2 创建分支

1.4.3 删除分支

1.4.4 切换分支

1.4.5 创建并切换到新建分支

1.5 场景应用

1.5.1 前期准备

1.5.2 具体操作

二、Git标签

2.1 定义

2.2 类型

2.3 标签命令

2.3.1 创建标签

2.3.2 查看标签

2.3.3 进入标签(切换到标签所指向的提交):

2.3.4上传标签(推送标签到远程仓库)

2.3.5 删除标签 

2.4 标签规范

2.5 场景应用

三、收获

 


一、Git分支

1.1 定义

  • 在Git中,分支(Branch)是一种用来表示项目工作进程的引用,它指向某次提交(commit),并且包含了该提交及其所有父提交的快照。
  • 分支的存在使得可以在同一代码库中同时进行多个不同的工作,而不会相互影响。每个分支都代表了项目的一个独立线条,开发者可以在不同的分支上进行独立的开发、测试和实验。

1.2 基本概念

以下是一些关于Git分支的基本概念:

1. 主分支(Master/Main):

  • 主分支通常是项目的主要分支,包含了稳定和可发布的代码。
  • 在一些新的项目中,可能使用"main"作为主分支的名称,而在传统项目中,使用"master"作为主分支名称。

2. 创建分支:

  • 使用 git branch 命令可以创建一个新的分支。例如,git branch feature-branch 会创建名为 "feature-branch" 的新分支,但并不会切换到该分支。

3. 切换分支:

  • 使用 git checkout 或者 git switch 命令可以切换到其他分支。例如,git switch feature-branch 将切换到名为 "feature-branch" 的分支。

4. 创建并切换分支:

  • 使用 git checkout -b 或者 git switch -c 命令可以创建并切换到新的分支。例如,git checkout -b new-feature 将创建并切换到名为 "new-feature" 的分支。

5. 查看分支:

  • 使用 git branch 命令可以列出所有本地分支,而 git branch -r 可以列出所有远程分支。

6. 合并分支:

  • 使用 git merge 命令可以将一个分支的更改合并到另一个分支。例如,从主分支合并到特性分支:先切换到特性分支,然后运行 git merge master

7. 删除分支:

  • 使用 git branch -d 命令可以删除已经合并的分支,而 git branch -D 可以强制删除未合并的分支。

8. 远程分支:

  • 远程分支是存在于远程仓库的分支。可以使用 git fetch 更新远程分支信息,然后使用 git checkout 或者 git merge 切换到或合并远程分支。

9. 推送分支:

  • 使用 git push 命令可以将本地分支推送到远程仓库。例如,git push origin feature-branch 将本地的 "feature-branch" 推送到远程仓库的同名分支。

10. 拉取分支:

  • 使用 git pull 命令可以从远程仓库拉取分支并合并到当前分支。

1.3 特点与优势

Git分支具有许多特点和优势,使得它成为版本控制系统中强大而灵活的工具。以下是Git分支的一些主要特点和优势:

  1. 并行开发:

    • 分支允许开发者同时处理多个任务,每个任务都可以在独立的分支上进行。这使得团队能够并行开发不同的功能、修复不同的bug,而不会互相干扰。
  2. 独立实验:

    • 可以创建一个新的分支来尝试新的想法或实验性的开发,而不会影响主干代码。如果实验成功,可以将分支合并回主干;如果失败,可以轻松地放弃分支。
  3. 任务隔离:

    • 每个分支都代表一个独立的工作线条,因此可以在不同的分支上进行不同任务的开发,而不必担心它们之间的冲突。这提高了代码的可维护性和开发效率。
  4. 快速切换:

    • 可以轻松地在不同的分支之间切换,使得开发者能够灵活地切换到不同的工作上下文。这是通过使用 git checkout 或 git switch 命令实现的。
  5. 版本历史清晰:

    • 分支的使用可以使版本历史变得更加清晰。每个分支都有自己的提交历史,合并时也会保留有关分支的信息,使得项目的演进更易于理解。
  6. 风险分散:

    • 在主分支上进行重大更改可能会带来一些风险,但使用分支可以将这些更改隔离在一个单独的分支上,直到它们经过充分测试并准备好合并。
  7. 团队协作:

    • 团队成员可以在各自的分支上进行独立的工作,然后定期将其更改合并到主分支。这种方式有助于减少合并冲突,并促进团队协作。
  8. 临时修复:

    • 可以创建一个临时的分支来修复紧急的bug,而不必影响正在进行的其他开发工作。修复完成后,可以将该分支合并回主分支。

1.4 Git分支操作命令

 Gitee新建仓库:

初始化readme文件:

复制SSH地址:

打开Git Bash进行克隆:

1.4.1 查看分支

命令如下:

git branch

1.4.2 创建分支

git branch 分支名

1.4.3 删除分支

git branch -d 分支名

注:在当前分支下不能删除当前分支 

1.4.4 切换分支

git checkout 分支名

当然,切换分支跟删除分支可以联立起来一起使用,即没有当前分支的情况下切换到新建的分支。

1.4.5 创建并切换到新建分支

git checkout -b 分支名

1.5 场景应用

案例假想:

人员:

  • 开发人员
  • 测试人员

场景:

  • 假设在正式环境下,开发人员在正式环境开发了十个功能模块(此处我们用十个java文件来进行模拟),但是实际上只有六个模块功能能够正常使用,而剩余的其他四个模块功能有问题,不能正常使用。那么此时开发人员开发的十个模块因为只有六个能用,所以将这六个模块打包进行测试(这里即交给Git进行管理)。

1.5.1 前期准备

在项目目录下新建十个文件,代表上述所说的十个功能模块,如下:

1.5.2 具体操作

Person1-6是没有问题的模块,7-10是有问题的模块。即:

使用gui打开图形操作界面,右键点击Git GUI 。点击文件图标,将前六个模块交给Git管理:

因Person1-6功能无问题,将Person1-6提交到测试环境中进行测试,

输入命令 git commit -am "六个模块功能完成,加入测试环境进行测试",如下

 提交完之后,开发环境中,就只能看到剩余未提交的有功能性问题的模块了,如下:

之后,我们进入到测试环境中,在本地的文件夹中是看不到在测试环境中的文件的,

输入命令进入测试环境 :  git checkout ceshi

更换到测试环境后(此时测试环境上是没有任何代码的),如下:

  • 那么这里可能有人就要问了,为什么在测试环境下,本地资源文件看到的却是开发人员未提交的有问题的功能模块呢?

因为这四个有问题的功能模块是未暂存的,不属于任何分支。

那么测试人员要想测试,就必须先将开发分支上的代码合并到测试分支上去,才能进行测试,输入命令:git merge kaifa , 如下:

 

测试完成后,我们进入到开发环境中,将开发环境作为一个分支上传到远程仓库中,

命令 :  git checkout kaifa   ( 进入开发环境 )

命令 :  git push origin kaifa  ( 将开发环境作为一个分支上传到远程仓库中 )

具体操作如下:

然后我们再进入到测试环境中,将测试环境作为一个分支上传到远程仓库中,

命令 :  git checkout ceshi( 进入测试环境 )

命令 :  git push origin ceshi( 将测试环境作为一个分支上传到远程仓库中 )

具体操作如下:

上传后,在远程仓库中的这个分支里,就可以看到当时测试环境的所有模块及代码和文件。

二、Git标签

2.1 定义

在Git中,标签(Tag)是用于标记特定提交的引用。它是一个指向某个特定提交的不可变的引用,通常用于标识版本发布或其他重要的里程碑。与分支不同,标签通常不会移动,因此它是一个静态的指针,永远指向特定的提交。

2.2 类型

标签在Git中有两种主要类型:

  • 轻量标签(Lightweight Tag)
  • 附注标签(Annotated Tag)

2.3 标签命令

2.3.1 创建标签

git tag   <tag_name>      # 创建一个轻量标签,标签名称 : <tag_name>
git tag -a  <tag_name>  -m "tag message"   #创建一个带注释的标签

2.3.2 查看标签

git tag        # 列出所有标签

2.3.3 进入标签(切换到标签所指向的提交):

git checkout <tag_name>      # 切换到名为<tag_name>的标签所指向的提交

2.3.4上传标签(推送标签到远程仓库)

git push origin  <tag_name>     # 将名为<tag_name>的标签推送到远程仓库
git push --tags                           # 将所有本地标签推送到远程仓库

2.3.5 删除标签 

git tag -d <tag_name>    # 将名为<tag_name>的标签删除

git push origin :refs/tags/<tag_name>    # 将在远程仓库名为<tag_name>的标签删除

2.4 标签规范

在 Git 中,标签的命名规范可以根据个人或团队的习惯来制定,但是一般来说,建议遵循以下规范:

  • 标签名应该简短、有意义,并且能够清晰地表达该标签所代表的含义。
  • 标签名应该使用英文单词,可以包含数字和连字符(-),但是不要包含空格或其他特殊字符。
  • 如果要创建一个版本号标签,建议使用语义化版本号(Semantic Versioning,简称 SemVer)规范,格式为 `v1.0.0.20231111`,其中 v1表示主版本号,第一个0表示次版本号,第二个0表示修订号,20231111表示日期。
  • 如果要创建一个带注释的标签,建议在注释中包含该标签的详细信息,例如该版本的功能特性、修复的 bug、重要的变更等。

 补充:

语义化版本号后可以再加个.xxx后缀,如后缀为 :

  • .alpha 表示开发环境
  • .beta 表示测试环境
  • .rc  表示灰度环境
  •  .r  表示生成环境

这些规范旨在提高标签的可读性和管理性,确保团队成员能够轻松地理解标签的目的和含义。选择适合项目需求的标签规范,并在整个团队中强调一致性,有助于更好地组织和维护版本信息。

2.5 场景应用

进入开发环境(kaifa),创建一个相对开发环境的标签,并且上传到自己的远程仓库,命令如下:

命令 :  git checkout kaifa( 进入开发环境 )

命令 :  git tag v1.0.0.20231111.alpha   ( 创建标签 )

命令 :  git push origin v1.0.0.20231111.alpha  ( 将标签上传到远程仓库 )

具体操作如下:

上传后,在远程仓库汇中就可以看到该标签,并且标识上传的开发环境的分支。

进入生成环境(master),创建一个相对生成环境的标签,并且上传到自己的远程仓库,命令如下:

命令 :  git checkout master  ( 进入生成环境 )

命令 :  git tag v2.0.0.20231111.r  ( 创建生成环境标签 )

命令 :  git push origin v2.0.0.20231111.r  ( 上传到远程仓库 )

具体操作如下:

然后我们回到Gitee码云查看远程仓库是否有这两个标签。如下:

在远程仓库中可以看到已上传的两个标签。

注:

如果发现,上传到远程仓库的标签有误,需要删除。具体操作顺序如下:

我们需要先将本地的标签进行删除,在将远程仓库的标签删除才可。

删除标签命令如下: 

命令 : git tag -d v2.0.0.20231111.r   ( 将本地的标签删除 )

命令 : git push origin :refs/tags/v2.0.0.20231111.r  ( 将远程仓库标签删除 )

 具体操作如下:

在Gitee码云远程仓库中可以看到生成环境的标签已经删除,如图 : 

三、收获

学习Git分支和标签是使用Git进行版本控制的关键部分,对于个人开发者和团队来说都是非常有益的。以下是学习Git分支与标签给我带来的一些主要收获:

Git分支:

  1. 并行开发: 了解如何使用分支使得团队能够在同一时间内独立地开发不同的功能或修复不同的问题,从而提高开发效率。

  2. 特性分支: 学会使用特性分支,使得每个新功能或变更都有一个专门的分支,便于跟踪和管理。

  3. 分支合并: 理解分支合并的概念,学会如何将一个分支的更改合并到另一个分支,确保代码的完整性和一致性。

  4. 冲突解决: 了解并学会解决分支合并中可能发生的冲突,学会使用工具或手动解决冲突。

  5. 远程分支: 了解如何与远程仓库同步分支,包括推送本地分支到远程仓库以及拉取远程分支到本地。

  6. 分支管理策略: 了解和选择适合项目的分支管理策略,如Git Flow等,以便更好地组织和协调团队的工作。

Git标签:

  1. 版本发布: 学会使用标签来标记项目的重要版本发布,使得每个发布都有一个清晰的标识。

  2. 语义化版本控制: 了解语义化版本控制(Semantic Versioning)的概念,并学会如何使用标签来遵循版本号规范。

  3. 标签注释: 学会使用附注标签并添加有意义的注释,以便在查看标签历史时了解每个版本的变更和目的。

  4. 标签的推送与删除: 学会将本地标签推送到远程仓库,以及在需要的情况下删除本地和远程的标签。

  5. 版本回滚: 了解如何使用标签来回滚到特定版本,以处理紧急问题或回退到稳定的版本。

  6. 团队协作: 学会在团队协作中合理使用标签,以便整个团队能够清晰地了解项目的版本历史和状态。

通过学习这些Git分支和标签的概念和技巧,你将能够更高效地进行代码管理、团队协作,并更好地组织项目的版本历史。这些技能对于任何使用Git进行版本控制的开发者都是非常重要的。


最后Git分支与Git标签的介绍及其场景应用就到这里,祝大家在敲代码的路上一路通畅!

感谢大家的观看 !

相关文章:

Git分支与Git标签的介绍及其场景应用

目录 一、Git分支 1.1 定义 1.2 基本概念 1.3 特点与优势 1.4 Git分支操作命令 1.4.1 查看分支 1.4.2 创建分支 1.4.3 删除分支 1.4.4 切换分支 1.4.5 创建并切换到新建分支 1.5 场景应用 1.5.1 前期准备 1.5.2 具体操作 二、Git标签 2.1 定义 2.2 类型 2.3 标…...

Three.js——基于原生WebGL封装运行的三维引擎

文章目录 前言一、什么是WebGL&#xff1f;二、Three.js 特性 前言 Three.js中文官网 Three.js是基于原生WebGL封装运行的三维引擎&#xff0c;在所有WebGL引擎中&#xff0c;Three.js是国内文资料最多、使用最广泛的三维引擎。既然Threejs是一款WebGL三维引擎&#xff0c;那么…...

第八章认识Express框架

目录 Express模块化路由 基本概述 基本使用 基本构建 案例项目 Express接收请求参数 基本概述 基本类别 Express接收GET请求参数 Express接收POST请求参数 Express接收路由参数 Express模块化路由 基本概述 在Express中&#xff0c;路由是指确定应用程序如何响应对…...

【K8s集群离线安装-kubeadm】

1、kubeadm概述 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令快速完成一个kubernetes集群的部署。 2、环境准备 2.1 软件环境 软件版本操作系统CentOS 7Docker19.03.13K8s1.23 2.2 服务器 最小硬件配置&#xff1a;2核CPU、2G内存…...

python工具CISCO ASA设备任意文件读取

​python漏洞利用 构造payload&#xff1a; /CSCOT/translation-table?typemst&textdomain/%2bCSCOE%2b/portal_inc.lua&default-language&lang../漏洞证明&#xff1a; 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝赐教&#xff0c;万分感谢。 免…...

TCP关闭的两种方法概述

一个TCP需要经过四次挥手才可以关闭连接&#xff0c;能够开启四次挥手的函数有两个&#xff1a; int close(int sockfd) int shutdown(int sockfd,int howto) 接下来就分别讲解一下这两个函数。 close()函数 函数原型 #include<unistd.h> int close(int sockfd)这个函…...

Git的Hooks机制

参考文章&#xff1a;详解如何在项目中使用git Hooks&#xff08;husky、yorkie&#xff09; git hooks钩子 git hooks是一些自定义的脚本&#xff0c;用于控制git工作的流程&#xff0c;分为客户端钩子和服务端钩子。  ~/work/step-time/ [master*] ll .git/hooks total…...

代码随想录算法训练营第四十九天|121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II

第九章 动态规划part10 121. 买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最…...

Rust教程6:并发编程和线程通信

文章目录 线程初步join方法线程通信 Rust系列&#xff1a;初步⚙所有权⚙结构体和枚举类⚙函数进阶⚙泛型和特征 线程初步 在Rust中&#xff0c;开启多线程进行并发编程&#xff0c;只需调用thread::spawn&#xff0c;但这里有一个坑点&#xff0c;即spawn函数只有一个传入参…...

JVM在线分析-监控工具(jps, jstat, jstatd)

参考官方文档&#xff08;jdk11&#xff09; https://docs.oracle.com/en/java/javase/11/tools/troubleshooting-tools-and-commands.html#GUID-CB44BFBA-E5F9-4D80-8EE8-28E9F16BC451 1. 监控工具(jps, jstat, jstatd) jps -q Suppresses the output of the class name, J…...

Console LDAP 配置解密

之前通过短视频向大家介绍了 Console 如何集成 LDAP&#xff0c;但很多小伙伴反映按照视频里的配置后不成功。今天就结合小伙伴们反映的问题来跟大家详细介绍一下。 Console LDAP 完整的配置参数如下&#xff1a; 名称类型说明hoststringLDAP 服务器地址portintLDAP 服务器端口…...

node插件MongoDB(三)—— 库mongoose 的使用和数据类型(一)

前言 提示&#xff1a;使用mongoose 的前提是你安装了node和 MongoDB。 mongoose 官网文档&#xff1a;http://mongoosejs.net/docs/index.html 文章目录 前言一、安装二、基本使用1. 打开bin目录的mongod.exe文件2. 基本使用的代码&#xff08;连接mongodb 服务&#xff09;3.…...

基础(二)

基础&#xff08;二&#xff09; 字符串型 C风格&#xff1a;char 变量名[] “字符串值”&#xff1b; C风格&#xff1a;string 变量名 “字符串值” #include <iostream> using namespace std; #include <string>int main() {// C风格char str1[] "h…...

思维模型 目标效应

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。明确目标&#xff0c;激发内在动机。 1 目标效应的应用 1.1 目标效应在教育领域的应用-棉花糖实验 美国斯坦福大学心理学系的教授米歇尔&#xff08;Walter Mischel&#xff09;曾经进行了…...

【从0到1设计一个网关】性能优化---Netty线程数配置与JVM参数配置

文章目录 Netty线程介绍Netty实战配置JVM参数与ZGCJVM与ZGC调优Netty线程介绍 在Netty中有两个比较重要的线程概念,一个是BOSS线程,一个是Woker线程。 Boss线程组: Boss线程组通常负责处理接受客户端连接的工作,即处理ServerSocketChannel的连接事件。 Boss线程会监听并接…...

node插件MongoDB(五)—— 库mongoose 的模块化(五)

文章目录 一、使用mongoose 模块化的原因二、准备工作2. 启动mongo.exe 和mongod.exe 两个程序连接数据库 三、基本模块的拆分1、基本逻辑2、代码3、代码图示说明 四、在index.js 中进一步的拆分1.拆分原因2.新建model文件夹存储文档的结构对象3.代码4.代码实际演示和注意点 一…...

Windows server 2008 R2 IIS搭建ASP网站教程

一、安装应用程序服务器 提示安装成功 二、添加角色服务asp 三、asp网站配置 放入源码 设置网站首页为index.asp: 设置应用程序池 四、设置网站目录属性 五、access数据库连接配置 Cd c:\Windows\System32\inetsrv appcmd list apppool /xml | appcmd set apppool /…...

Linux之基础开发工具gdb调试器的使用(三)

文章目录 一、Linux调试器-gdb使用1、安装gdb2、背景3、Debug和release4、区分Debug和release 二、Linux调试器-gdb命令演示1、显示指定行之后的代码&#xff08;自动记录最后一条指令&#xff09;2、断点1、打印断点2、查看断点3、删除断点4、使能&#xff08;禁用/开启&#…...

advanced-css: No.1

本套教程学习来自视频&#xff1a;https://www.bilibili.com/video/BV1n94y1o7yS/?p7&spm_id_frompageDriver&vd_sourceb79be8283df9418cb45941cc0bd583c6 案例 实现效果图 代码 HTML: <!DOCTYPE html> <html lang"en"><head><meta c…...

最新宝塔面板第三方云端站点程序源码/第三方宝塔面板PHP源码/全开源ThinkPHP框架

源码简介&#xff1a; 实现宝塔面板第三方云端站点程序源码,这个是第三方宝塔面板 btcloud PHP源码&#xff0c;它还有云端使用记录、IP黑白名单、定时任务等功能。 这是一个使用PHP开发的宝塔面板第三方云端站点程序。 您可以利用此程序搭建属于自己的宝塔面板第三方云端&a…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...

基于单片机的宠物屋智能系统设计与实现(论文+源码)

本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢&#xff0c;连接红外测温传感器&#xff0c;可实时精准捕捉宠物体温变化&#xff0c;以便及时发现健康异常&#xff1b;水位检测传感器时刻监测饮用水余量&#xff0c;防止宠物…...

从实验室到产业:IndexTTS 在六大核心场景的落地实践

一、内容创作&#xff1a;重构数字内容生产范式 在短视频创作领域&#xff0c;IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色&#xff0c;生成的 “各位吴彦祖们大家好” 语音相似度达 97%&#xff0c;单条视频播放量突破百万…...

Python第七周作业

Python第七周作业 文章目录 Python第七周作业 1.使用open以只读模式打开文件data.txt&#xff0c;并逐行打印内容 2.使用pathlib模块获取当前脚本的绝对路径&#xff0c;并创建logs目录&#xff08;若不存在&#xff09; 3.递归遍历目录data&#xff0c;输出所有.csv文件的路径…...

python基础语法Ⅰ

python基础语法Ⅰ 常量和表达式变量是什么变量的语法1.定义变量使用变量 变量的类型1.整数2.浮点数(小数)3.字符串4.布尔5.其他 动态类型特征注释注释是什么注释的语法1.行注释2.文档字符串 注释的规范 常量和表达式 我们可以把python当作一个计算器&#xff0c;来进行一些算术…...

Copilot for Xcode (iOS的 AI辅助编程)

Copilot for Xcode 简介Copilot下载与安装 体验环境要求下载最新的安装包安装登录系统权限设置 AI辅助编程生成注释代码补全简单需求代码生成辅助编程行间代码生成注释联想 代码生成 总结 简介 尝试使用了Copilot&#xff0c;它能根据上下文补全代码&#xff0c;快速生成常用…...

CppCon 2015 学习:Simple, Extensible Pattern Matching in C++14

什么是 Pattern Matching&#xff08;模式匹配&#xff09; ❝ 模式匹配就是一种“描述式”的写法&#xff0c;不需要你手动判断、提取数据&#xff0c;而是直接描述你希望的数据结构是什么样子&#xff0c;系统自动判断并提取。❞ 你给的定义拆解&#xff1a; ✴ Instead of …...