【Git】的分支和标签的讲解及实际应用场景
目录
讲解
环境讲述
分支标签的区别
分支
命令
场景应用
标签
命令
标签规范
讲解
环境讲述
当软件从开发到正式环境部署的过程中,不同环境的作用
开发环境:用于开发人员进行软件开发、测试和调试。在这个环境中,开发人员可以快速地进行代码编写、功能测试和调试,同时也可以模拟真实环境中的情况进行开发。
测试环境:用于进行软件的功能测试和性能测试。在测试环境中,测试人员可以对软件的各项功能进行测试,包括单元测试、集成测试和系统测试,以及性能和稳定性测试。
集成环境:用于将不同模块或组件集成在一起进行测试。在这个环境中,开发人员可以确保不同模块之间的接口和交互正常,同时也可以进行一些集成测试,以验证整个系统的功能和稳定性。
灰度环境:用于部分用户或服务器进行新版本的有限范围测试。在灰度环境中,可以让一部分用户先体验新版本,以便及时发现和解决问题,降低全面发布带来的风险。
预生产环境:用于进行最终的测试和验证,通常会模拟正式环境的配置和数据。在这个环境中,可以进行最终的功能测试、性能测试和用户验收测试,以确保软件在正式环境中能够正常运行。
生产环境:最终部署和运行软件的环境,用于提供给最终用户使用。在生产环境中,软件需要保持高可用性、稳定性和安全性,以满足用户的需求。
通过以上不同的环境,可以确保软件在开发、测试和部署的过程中能够逐步验证和完善,最终在生产环境中提供给用户使用
分支标签的区别
在 Git 中,分支和标签都是用来标记代码历史的重要工具,它们之间有以下几点关系
1. 分支和标签都是指向提交(commit)的指针。分支指向最新的提交,标签指向一个特定的提交。
2. 分支和标签都可以用来记录代码历史的不同版本。分支通常用于开发过程中的版本控制,标签通常用于发布版本时的标记。
3. 分支和标签的区别在于,分支可以移动,而标签不可以。移动分支意味着将当前工作目录的 HEAD 指向新的提交,这样就可以继续在新的提交上进行开发。标签则是一个静态的指针,指向一个特定的提交,不会随着代码的修改而移动。
4. 分支和标签的创建和删除都是非常容易的。使用 `git branch` 命令可以创建和删除分支,使用 `git tag` 命令可以创建和删除标签。
总之,分支和标签都是 Git 中非常重要的概念,它们可以帮助我们更好地管理代码历史,进行版本控制和发布管理。在实际开发中,我们需要根据具体的需求和场景来选择使用分支或标签。
分支
命令
创建分支:
git branch <branch_name> # 创建一个名为<branch_name>的新分支
git checkout -b <branch_name> # 创建一个新分支<branch_name>并切换到该分支
查看分支:
git branch # 查看所有本地分支
git branch -a # 查看所有本地和远程分支
进入分支(切换分支):
git checkout <branch_name> # 切换到名为<branch_name>的分支
上传分支(推送分支到远程仓库):
git push origin <branch_name> # 将当前分支推送到远程仓库
场景应用
首先我们先创建一个私有的仓库:

然后进行初始化
使用命令进行克隆,将仓库的文件复制到本地文件中

比如我们在开发中需要实现8个模块,我这里的创建8个文件来进行模拟
在本地工作区间中,右键打开命令窗口
输入命令创建开发环境 : git branch dev ( 比如这是创建一个开发环境 )
输入命令创建测试环境 : git branch test( 比如这是创建一个测试环境 )

比如现在已经有5个模块做完成了,需要上传到测试环境中。
使用gui打开图形操作界面,右键点击Git GUI 。点击文件图标,要1到5的文件让git管理
比如5个模块已经开发完成了,需要放入测试环境中进行测试,输入以下命令
git commit -m "5个模块已经开发完毕,放入到测试环境中"
在查看模块的状态。
之后,我们进入到测试环境中,在本地的文件夹中是看不到在测试环境中的文件的,
输入命令进入测试环境 : git checkout test
输入以下命令,将开发环境中的模块和测试环境中的模块进行整合,整合之后在测试环境中可以看到所有的模块。
命令 : git merge dev
测试完成后,我们进入到开发环境中,将开发环境作为一个分支上传到远程仓库中
命令 : git checkout dev ( 进入开发环境 )
命令 : git push origin dev ( 将开发环境作为一个分支上传到远程仓库中 )
上传后,在远程仓库中的这个分支里,就可以看到当时开发环境的所有模块及代码和文件
我们再进入到测试环境中,将测试环境作为一个分支上传到远程仓库中
命令 : git checkout test( 进入测试环境 )
命令 : git push origin test( 将测试环境作为一个分支上传到远程仓库中 )

上传后,在远程仓库中的这个分支里,就可以看到当时测试环境的所有模块及代码和文件
标签
命令
创建标签:
git tag <tag_name> # 创建一个轻量标签,标签名称 : <tag_name>
git tag -a <tag_name> -m "tag message" #创建一个带注释的标签
查看标签:
git tag # 列出所有标签
进入标签(切换到标签所指向的提交):
git checkout <tag_name> # 切换到名为<tag_name>的标签所指向的提交
上传标签(推送标签到远程仓库):
git push origin <tag_name> # 将名为<tag_name>的标签推送到远程仓库
git push --tags # 将所有本地标签推送到远程仓库
删除标签 :
git tag -d <tag_name> # 将名为<tag_name>的标签删除
git push origin :refs/tags/<tag_name> # 将在远程仓库名为<tag_name>的标签删除
标签规范
在 Git 中,标签的命名规范可以根据个人或团队的习惯来制定,但是一般来说,建议遵循以下规范:
1. 标签名应该简短、有意义,并且能够清晰地表达该标签所代表的含义。
2. 标签名应该使用英文单词,可以包含数字和连字符(-),但是不要包含空格或其他特殊字符。
3. 如果要创建一个版本号标签,建议使用语义化版本号(Semantic Versioning,简称 SemVer)规范,格式为 `v1.0.0.20231111`,其中 v1表示主版本号,第一个0表示次版本号,第二个0表示修订号,20231111表示日期。
v1.0.0.20231111可以再加个.后缀
为 : .alpha 表示开发环境
为 : .beta 表示测试环境为 : .rc 表示灰度环境
为 : .r 表示生成环境
总之,标签的命名规范应该清晰、简洁、有意义,并且符合团队或行业的惯例。这样可以帮助我们更好地管理代码历史,提高代码的可读性和可维护性。
okok,今天就到这里啦,下班下班!!!!!!!!!
相关文章:
【Git】的分支和标签的讲解及实际应用场景
目录 讲解 环境讲述 分支标签的区别 分支 命令 场景应用 标签 命令 标签规范 讲解 环境讲述 当软件从开发到正式环境部署的过程中,不同环境的作用 开发环境:用于开发人员进行软件开发、测试和调试。在这个环境中,开发人员可以快速地…...
修改django开发环境runserver命令默认的端口
runserver默认8000端口 虽然python manage.py runserver 8080 可以指定端口,但不想每次runserver都添加8080这个参数 可以通过修改manage.py进行修改,只需要加三行: from django.core.management.commands.runserver import Command as Ru…...
kubeadm安装k8s高可用集群
目录 一、环境规划 二、注意事项: 三、环境准备: 1. 关闭防火墙规则,关闭selinux,关闭swap交换: 2. 修改主机名 3. 所有节点修改hosts文件: 4. 所有节点时间同步: 5. 所有节点实现Linux的资…...
来看看电脑上有哪些不为人知的小众软件?
电脑上的各类软件有很多,除了那些常见的大众化软件,还有很多不为人知的小众软件,专注于实用功能,简洁干净、功能强悍。 1.桌面停靠栏工具——BitDock BitDock是一款运行在Windows系统中的桌面停靠栏工具,功能实…...
一个进程最多可以创建多少个线程?
前言 话不多说,先来张脑图~ linux 虚拟内存知识回顾 虚拟内存空间长啥样 在 Linux 操作系统中,虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同位数的系统,地址空间的范围也不同。比如最常见的 32 位和 64 位系统&am…...
ElasticSearch文档分析
ElasticSearch文档分析 包含下面的过程: 将一块文本分成适合于倒排索引的独立的 词条将这些词条统一化为标准格式以提高它们的“可搜索性”,或者 recall 分析器执行上面的工作。分析器实际上是将三个功能封装到了一个包里: 字符过滤器 首先&a…...
Xilinx FPGA平台DDR3设计详解(一):DDR SDRAM系统框架
DDR SDRAM(双倍速率同步动态随机存储器)是一种内存技术,它可以在时钟信号的上升沿和下降沿都传输数据,从而提高数据传输的速率。DDR SDRAM已经发展了多代,包括DDR、DDR2、DDR3、DDR4和DDR5,每一代都有不同的…...
Spring Data JPA方法名命名规则
最近巩固一下JPA,网上看到这些资料,这里记录巩固一下。 一、Spring Data Jpa方法定义的规则 简单条件查询 简单条件查询:查询某一个实体类或者集合。 按照Spring Data的规范的规定,查询方法以find | read | get开头&…...
【Leetcode Sheet】Weekly Practice 15
Leetcode Test 2586 统计范围内的元音字符串数(11.7) 给你一个下标从 0 开始的字符串数组 words 和两个整数:left 和 right 。 如果字符串以元音字母开头并以元音字母结尾,那么该字符串就是一个 元音字符串 ,其中元音字母是 a、e、i、o、u…...
人力资源社会保障部办公厅关于推行专业技术人员职业资格电子证书的通知
(人社厅发〔2021〕97号) 各省、自治区、直辖市及新疆生产建设兵团人力资源社会保障厅(局),中共海南省委人才发展局,国务院有关部门、直属机构人事部门,有关协会、学会: 为贯彻落实…...
什么是光电耦合器?如何选择型号及种类
光电耦合器(英文缩写为OC)亦称光电隔离器,简称光耦;以光为媒介传输电信号;它对输入、输出电信号有良好的隔离作用,是目前种类最多、用途最广的光电器件之一;所以,它在各种电路中得到广泛的应用。 光耦合器…...
hive里因为列名用了关键字导致建表失败
代码 现象 ParseException line 6:4 cannot recognize input near percent String COMMENT in column name or primary key or foreign key 23/11/13 11:52:57 ERROR org.apache.hadoop.hive.ql.Driver: FAILED: ParseException line 6:4 cannot recognize input near percent …...
MySQL 报错 incorrect datetime value ‘0000-00-00 00:00:00‘ for column
使用navicat导入数据时报错: MySQL 报错 incorrect datetime value ‘0000-00-00 00:00:00’ for column 这是因为当前的MySQL不支持datetime为0的情况。 MySQL报incorrect datetime value ‘0000-00-00 00:00:00’ for column错误原因,是由于在MySQL5.7…...
Jira Data Center(非集群)升级操作
一、升级准备 Jira 管理界面执行升级检查下载升级包,使用原操作方式相同的方式安装。我这里原来的版本是通过./atlassian-jira-software-9.11.2-x64.bin安装的,接下来下载atlassian-jira-software-9.11.3-x64.bin的安装文件停止 Jira,bin/st…...
Spring IOC - BeanDefinition解析
1. BeanDefinition的属性 BeanDefinition作为接口定义了属性的get、set方法。这些属性基本定义在其直接实现类AbstractBeanDefinition中,各属性的含义如下表所示: 类型 名称 含义 常量 SCOPE_DEFAULT 默认作用域:单例模式 AUT…...
ds前后台博客系统
源码私信或者公众号java大师获取 博客简介:本博客采用Spring Boot LayUI做为基础,进行的博客系统开发,与bootvue相比,更为适合开发简单的系统,并且更容易上手,简单!高效!更易上手&a…...
算法leetcode|88. 合并两个有序数组(rust重拳出击)
文章目录 88. 合并两个有序数组:样例 1:样例 2:样例 3:提示: 分析:题解:rust:go:c:python:java: 88. 合并两个有序数组: …...
GoLong的学习之路,进阶,语法之并发(并发错误处理)补充并发三部曲
这篇文章主要讲的是如何去处理并发的错误。 在Go语言中十分便捷地开启goroutine去并发地执行任务,但是如何有效的处理并发过程中的错误则是一个很棘手的问题。 文章目录 recovererrgroup recover 哦对,似乎没写错误处理的文章。后面补上。 首先&…...
猪酒店房价采集
<?php // 设置代理 $proxy_host jshk.com.cn;// 创建一个cURL资源 $ch curl_init();// 设置代理 curl_setopt($ch, CURLOPT_PROXY, $proxy_host.:.$proxy_port);// 连接URL curl_setopt($ch, CURLOPT_URL, "http://www.zujia.com/");// 发送请求并获取HTML文档…...
Java基础知识第四讲:Java 基础 - 深入理解泛型机制
Java 基础 - 深入理解泛型机制 背景:Java泛型这个特性是从JDK 1.5才开始加入的,为了兼容之前的版本,Java泛型的实现采取了“伪泛型”的策略,即Java在语法上支持泛型,但是在编译阶段会进行所谓的“类型擦除”࿰…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
