【Git】的分支和标签的讲解及实际应用场景

目录

一、讲解

1. 环境讲述

2. 应用原因

3. 分支标签的区别

二、分支

1. 命令

2. 场景应用

三、标签

1. 命令

2. 标签规范

3. 应用场景

每篇一获


一、讲解

1. 环境讲述

当软件从开发到正式环境部署的过程中,不同环境的作用如下:

  1. 开发环境:用于开发人员进行软件开发、测试和调试。在这个环境中,开发人员可以快速地进行代码编写、功能测试和调试,同时也可以模拟真实环境中的情况进行开发。

  2. 测试环境:用于进行软件的功能测试和性能测试。在测试环境中,测试人员可以对软件的各项功能进行测试,包括单元测试、集成测试和系统测试,以及性能和稳定性测试。

  3. 集成环境:用于将不同模块或组件集成在一起进行测试。在这个环境中,开发人员可以确保不同模块之间的接口和交互正常,同时也可以进行一些集成测试,以验证整个系统的功能和稳定性。

  4. 灰度环境:用于部分用户或服务器进行新版本的有限范围测试。在灰度环境中,可以让一部分用户先体验新版本,以便及时发现和解决问题,降低全面发布带来的风险。

  5. 预生产环境:用于进行最终的测试和验证,通常会模拟正式环境的配置和数据。在这个环境中,可以进行最终的功能测试、性能测试和用户验收测试,以确保软件在正式环境中能够正常运行。

  6. 生产环境:最终部署和运行软件的环境,用于提供给最终用户使用。在生产环境中,软件需要保持高可用性、稳定性和安全性,以满足用户的需求。

通过以上不同的环境,可以确保软件在开发、测试和部署的过程中能够逐步验证和完善,最终在生产环境中提供给用户使用。

2. 应用原因

在大型企业开发中使用这些环境是非常重要的 :

1. 隔离开发和测试:在大型企业中,通常有多个开发团队同时进行软件开发,使用不同的开发环境可以隔离彼此的工作,避免相互干扰和冲突。同时,测试环境的使用可以确保开发人员和测试人员在不同的环境中进行工作,保持独立性和专注性。

2. 确保质量:通过在不同环境中进行测试,可以更好地确保软件的质量。在集成环境中进行集成测试,可以验证不同模块之间的交互和接口;在预生产环境中进行最终测试,可以模拟真实环境中的情况,确保软件能够正常运行;而在灰度环境中进行有限范围的测试,可以降低新版本发布的风险。

3. 降低错误传播:通过使用不同的环境,可以在不同阶段发现和解决问题,避免错误在软件开发过程中的传播。比如,在开发环境中发现的问题可以及时修复,避免进入测试和生产环境。

4. 用户体验和反馈:通过在灰度环境中进行有限范围的测试,可以让一部分用户提前体验新版本,了解用户对新功能的反馈和需求,有助于优化软件的用户体验。

5. 风险管理:在预生产环境中进行最终测试和验证,可以降低软件在生产环境中出现问题的风险。同时,通过灰度环境的使用,可以降低新版本发布带来的风险,确保软件的稳定性和可靠性。

因此,在大型企业开发中使用不同的环境可以帮助团队更好地进行软件开发、测试和部署,确保软件在不同阶段都能够满足用户需求和质量要求。

3. 分支标签的区别

在 Git 中,分支和标签都是用来标记代码历史的重要工具,它们之间有以下几点关系:

1. 分支和标签都是指向提交(commit)的指针。分支指向最新的提交,标签指向一个特定的提交。

2. 分支和标签都可以用来记录代码历史的不同版本。分支通常用于开发过程中的版本控制,标签通常用于发布版本时的标记。

3. 分支和标签的区别在于,分支可以移动,而标签不可以。移动分支意味着将当前工作目录的 HEAD 指向新的提交,这样就可以继续在新的提交上进行开发。标签则是一个静态的指针,指向一个特定的提交,不会随着代码的修改而移动。

4. 分支和标签的创建和删除都是非常容易的。使用 `git branch` 命令可以创建和删除分支,使用 `git tag` 命令可以创建和删除标签。

总之,分支和标签都是 Git 中非常重要的概念,它们可以帮助我们更好地管理代码历史,进行版本控制和发布管理。在实际开发中,我们需要根据具体的需求和场景来选择使用分支或标签。

二、分支

1. 命令

创建分支:

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>    # 将当前分支推送到远程仓库

2. 场景应用

以下三步如有不清楚的地方可以看我其中的博客 :

【Git】安装和常用命令的使用与讲解及项目搭建和团队开发的出现的问题并且给予解决icon-default.png?t=N7T8https://blog.csdn.net/SAME_LOVE/article/details/134270273?spm=1001.2014.3001.5501

创建一个私有的仓库

如图 :

然后进行初始化

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

比如我们在开发中需要实现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( 将测试环境作为一个分支上传到远程仓库中 )

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

三、标签

1. 命令

创建标签:

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>的标签删除

2. 标签规范

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

1. 标签名应该简短、有意义,并且能够清晰地表达该标签所代表的含义。

2. 标签名应该使用英文单词,可以包含数字和连字符(-),但是不要包含空格或其他特殊字符。

3. 如果要创建一个版本号标签,建议使用语义化版本号(Semantic Versioning,简称 SemVer)规范,格式为 `v1.0.0.20231111`,其中 v1表示主版本号,第一个0表示次版本号,第二个0表示修订号,20231111表示日期。

v1.0.0.20231111可以再加个.后缀   

              为 : .alpha 表示开发环境
              为 : 
.beta 表示测试环境

              为 : .rc  表示灰度环境

              为 : .r  表示生成环境

4. 如果要创建一个带注释的标签,建议在注释中包含该标签的详细信息,例如该版本的功能特性、修复的 bug、重要的变更等。

总之,标签的命名规范应该清晰、简洁、有意义,并且符合团队或行业的惯例。这样可以帮助我们更好地管理代码历史,提高代码的可读性和可维护性。

3. 应用场景

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

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

命令 :  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  ( 上传到远程仓库 )

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

如图 : 

如果发现,上传到远程仓库的标签有误,需要删除。

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

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

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

在远程仓库中可以看到生成环境的标签已经删除

如图 : 

每篇一获

学习了 Git 的技术点后,你将会获得以下收获:

1. 更好的版本控制能力:掌握了 Git 的所有技术点后,你将能够更好地管理代码的版本历史,包括提交、分支、合并、重置等操作。

2. 更高效的团队协作能力:理解了 Git 的分支管理、远程仓库协作等技术点后,你将能够更好地与团队成员协作开发,解决代码冲突、进行代码审查等。

3. 更好的代码回退和恢复能力:学会了 Git 的重置、回滚、恢复等技术点后,你将能够更好地处理代码的回退和恢复,避免因代码错误而导致的严重问题。

4. 更好的代码发布和版本管理能力:掌握了 Git 的标签管理、版本发布等技术点后,你将能够更好地管理代码的发布过程,标记重要的版本,并进行版本控制。

5. 更好的代码分支管理能力:理解了 Git 的分支合并、分支策略等技术点后,你将能够更好地管理复杂的开发分支,保持代码库的整洁和稳定。

总之,学习了 Git 中所有的技术点将使你成为一个更优秀的软件开发者,提高你的代码管理和团队协作能力,从而更好地应对复杂的软件开发项目。 Git 是现代软件开发中不可或缺的工具,掌握了它的所有技术点将为你的职业发展带来巨大的帮助。

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

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

相关文章

【iOS开发】iOS App的加固保护原理:使用ipaguard混淆加固

​ 摘要 在开发iOS应用时&#xff0c;保护应用程序的安全是非常重要的。本文将介绍一种使用ipaguard混淆加固的方法来保护iOS应用的安全。通过字符串混淆、类名和方法名混淆、程序结构混淆加密以及反调试、反注入等主动保护策略&#xff0c;可以有效地保护应用程序的安全性。 …

vscode因为大文件而无限崩溃的问题,窗口意外终止(原因:“oom“,代码:“-536870904“

复制了一大堆的代码&#xff08;好几兆&#xff09;到一个文件里&#xff0c;然后就导致 vscode 卡死&#xff0c; 之后就算把该文件删掉了&#xff0c;打开vscode还是会默认打开该文件而卡死 解决办法&#xff1a; win R 输入 %appdata%/code/ 删除该文件夹下的 backups/ 文件…

SW如何显示样条曲线的控标

刚刚学习隔壁老王的sw画图时&#xff0c;怎么点都点不出样条曲线的控标&#xff0c;于是果断查询了一下解决方法&#xff0c;其实很简单&#xff0c;只不过是培训机构故意不说&#xff0c;叫你还解决不了&#xff0c;难受了就会花钱买他们的课了。毕竟如果学会了怎么解决问题了…

Unity 制作血量滑动条(Slider)

1.创建UI slider 层级面板点击右键-UI-slider 2.调整UI位置 选择2D视图&#xff0c;调整锚点和滑动条位置 3.PS中制作UI 导出2个图层&#xff0c;PNG格式。 4.改成精灵模式&#xff08;sprite2d&#xff09; 把两个PNG导入Unity仓库中&#xff0c;选中两个图&#xff0c;右…

Leetcode刷题详解—— 目标和

1. 题目链接&#xff1a;494. 目标和 2. 题目描述&#xff1a; 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可…

代码随想录 Day43 动态规划11 LeetCode T309 买卖股票的最佳时期含冷冻期 T714买卖股票的最佳时机含手续费

LeetCode T309 买卖股票的最佳时机含冷冻期 题目链接:309. 买卖股票的最佳时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 题目思路: 这题其实就是将卖出的状态拆分成三个状态 1.前两天就卖出并一直保持卖出的状态 2.今天卖出的状态 3.今天是冷冻期的状态 当然还有一个…

积极应对云网络安全

以下是 IT 领导者需要了解的内容&#xff0c;才能在云网络安全方面占据上风。 如果您的组织尚未主动解决云网络安全问题&#xff0c;则将面临灾难的风险。等待攻击发生根本没有意义。 主动云安全会采取积极措施来发现潜在威胁并在网络攻击发生之前阻止网络攻击。 这是通过持…

C++学习---信号处理机制、中断、异步环境

文章目录 前言信号处理signal()函数关于异步环境 信号处理函数示例raise()函数 前言 信号处理 关于信号&#xff0c;信号是一种进程间通信的机制&#xff0c;用于在程序执行过程中通知进程发生了一些事件。在Unix和类Unix系统中&#xff0c;信号是一种异步通知机制&#xff0c…

Azure 机器学习 - 如何使用模板创建安全工作区

目录 先决条件了解模板配置模板连接到工作区疑难解答错误&#xff1a;Windows 计算机名的长度不能超过 15 个字符&#xff0c;并且不能全为数字或包含以下字符 本教程介绍如何使用 [Microsoft Bicep]和 [Hashicorp Terraform]模板创建以下 Azure 资源&#xff1a; Azure 虚拟网…

Netty - 回顾Netty高性能原理和框架架构解析

文章目录 概述JDK 原生 NIO 程序的问题Why Netty使用场景Related ProjectsNetty 高性能设计I/O 模型【阻塞 I/O】&#xff1a;【I/O 复用模型】【基于 Buffer】 线程模型事件驱动模型Reactor 线程模型Netty的线程模型异步处理 Netty框架的架构设计功能特性模块组件Bootstrap、S…

新方向!文心一言X具身智能,用LLM大模型驱动智能小车

具身智能已成为近年来研究的热点领域之一。具身智能强调将智能体与实体环境相结合&#xff0c;通过智能体与环境的交互&#xff0c;来感知和理解世界&#xff0c;最终实现在真实环境中的自主决策和运动控制。 如何基于文心大模型&#xff0c;低成本入门“具身智能”&#xff0…

数据管理系统-week1-文件系统、数据库和数据库管理系统

文章目录 前言一、 文件系统文件系统的限制 二、 数据库系统三、 数据库管理系统参考文献 前言 一、 文件系统 对于更高级的数据处理应用程序来说&#xff0c;基于数据块的持久存储逻辑模型过于简单数据块序列被划分为称为文件的数据块的可变子序列&#xff0c;与文件相关的名…