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

news/2024/11/26 5:05:39/

目录

一、讲解

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.ppmy.cn/news/1211347.html

相关文章

电路中模拟地和数字地的分割方法

电路中只要是地&#xff0c;最终都要接到一起&#xff0c;然后入大地。如果不接在一起就是“浮地”&#xff0c;存在压差&#xff0c;容易积累电荷&#xff0c;造成静电。 地是参考0电位&#xff0c;所有电压都是参考地得出的&#xff0c;地的标准一致&#xff0c;故各种地应短…

android源码添加adb host支持

本文开始参考在 android 上使用 adb client-CSDN博客&#xff0c;在shell中已经可以使用。但当我想在app中用 String command "/data/local/tmp/adb -s 307ef90dc8128844 shell ls";StringBuilder output new StringBuilder();try {Process process Runtime.getR…

CSS 对齐、组合选择符、伪类、伪元素、导航栏

一、CSS 对齐&#xff1a; 1&#xff09;、元素居中对齐&#xff1a; 水平居中对齐一个元素&#xff0c;可以使用margin&#xff1a;auto&#xff0c;设置到元素的宽度将防止它溢出到容器的边缘。元素通过指定宽度&#xff0c;并将两边的空外边距平均分配。示例&#xff1a; …

xcode-工程设置

build settings Deployment Postprocessing 用于指定是否在构建完成后进行一些部署相关的处理。 当你在 Xcode 中构建你的应用程序时&#xff0c;构建设置决定了一些行为&#xff0c;其中一项是是否启用 Deployment Postprocessing。这个选项的主要作用是在构建完成后&#…

【Unity细节】Failed importing package???Unity导包失败?

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 &#x1f636;‍&#x1f32b;️收录于专栏&#xff1a;unity细节和bug &#x1f636;‍&#x1f32b;️优质专栏 ⭐【…

常见面试题-计算机网络相关

1.OSI 七层模型&#xff1f; OSI 七层模型&#xff1a;应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 TCP/IP 五层模型&#xff1a;应用层、传输层、网络层、链路层、物理层 应用层 应用层是由网络应用程序使用的&#xff0c;是离用户最近的一层 应用层通过…

多门店民宿预定系统酒店预订管理系统源码/公寓/农家乐小程序源码

技术栈&#xff1a; thinkphpuniappmysql 支持H5APP小程序 主要功能介绍&#xff1a; 在线预订 支持在线支付或到店付&#xff0c;支持配置免费取消订单时长&#xff0c;支持到店付保留时长设置 房间搜索 支持按日期搜索房间状态&#xff0c;支持按日期区间搜索房间状态…

NtripShare Mos地铁自动化监测终端盒子硬件设计

自动化监测产品到目前为止做了接近一年&#xff0c;在软件层面上&#xff0c;控制终端软件、平台软件、网平差算法都已解决&#xff0c;硬件盒子始终是心里过不去的坎&#xff0c;最终还是没有耐住性子自己做了一把。 选型如下&#xff1a; 1、主板:瑞芯微RK3568主板。 2、外…