Git系列之分支与标签的使用及应用场景模拟

news2024/11/16 13:44:05


 🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的博客专栏《Git实战开发》。🎯🎯

🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁

目录

前言

一、Git之分支

1. 分支简介

1.1 概述

1.2 分支的使用

命令

注意事项:

1.3 使用分支的优势

2.  分支的应用(模拟场景讲述)

二、Git之标签

1. 标签简介

1.1 概述

1.2 标签的使用

1.3 使用标签的好处

2. 标签的使用(结合场景说明) 

本期的博客分享到此结束

三连加关注

感谢支持


前言

         在上一期的Git系列博客的分享中与各位老铁们分享了有关git中Gui图形化界面的使用、ssh协议简介及使用以及最后的将git集成到我们的开发工具中去。本期的Git系列博客分享与大家分享git中的分支和标签的应用。

一、Git之分支

1. 分支简介

1.1 概述

         在git中,分支是指从主线上分离出来进行另外的操作,它不会影响到主线,主线又可以继续进行它的工作。分支可以用来解决临时需求,当分支完成特定任务后,可以将其合并回主线,而分支的任务完成之后可以将其删除。使用分支可以让我们在开发过程中从主线上分离出来,以免影响主线开发。

1.2 分支的使用

命令
分支命令
命令说明
git branch查看当前存在的所有分支。
git checkout -b 分支名字创建一个新的分支,并切换到该分支上工作。
git checkout 分支名字切换到指定分支上工作。
git merge 分支名字将指定分支合并到当前分支上。
git branch -d 分支名字删除指定分支。
注意事项:
  1. 分支是临时的,当分支完成特定任务后,需要将其合并回主线,并将其删除。
  2. 在使用分支时,最好在创建分支时就要指定一个明确的名称,以便于管理和跟踪。
  3. 分支之间不会相互影响,但需要注意在合并分支时可能会遇到冲突,需要手动解决冲突后才能成功合并。
  4. 分支可以用来解决临时需求,例如开发新功能或修复bug等,但不建议过多地使用分支,以免造成管理混乱。

1.3 使用分支的优势

        在Git中使用分支有以下几点好处:

  1. 隔离开发环境:分支允许开发者在主分支之外独立开发新功能或修复bug,不会对主分支造成影响。这样可以隔离开发环境,避免开发过程中可能出现的干扰。
  2. 并行开发:如果有多个开发者同时进行开发,可以使用分支来实现并行开发。每个开发者可以在自己的分支上独立工作,不会影响其他人的工作进度。
  3. 版本控制:通过创建不同的分支,可以轻松地回滚到之前的版本,或者将更改合并回主分支。这样可以更好地管理版本控制,有助于维护代码的稳定性和可维护性。
  4. 测试与调试:在进行软件测试和调试时,可以使用分支来隔离不同功能的测试用例。这样可以确保每个功能都经过充分的测试,减少潜在的问题。
  5. 协作与共享:对于多人协作的项目,使用分支可以方便地让团队成员共享代码。每个人都可以在自己的分支上进行修改,然后将更改合并回主分支。这样可以提高项目的协同效率。
  6. 灵活性:分支允许开发者在开发过程中进行灵活的操作,例如修改代码、添加新功能、回滚错误等,而不会对主线分支产生影响。

 总之,使用分支可以提供更好的开发环境、提高开发效率、增强代码的可维护性和可扩展性,以及方便多人协作。

2.  分支的应用(模拟场景讲述)

        首先我们在gitee官网上进行创建一个私有的仓库用于演示模拟场景使用分支,创建好之后并且初始化我们的readme文件,将创建好仓库的ssh网址复制下来在指定的文件夹中进行克隆。

         我们可以先查看一下分支,看看之前有误创建分支,然后我们在进入到文件目录中,在查看我们的分支就会发现又一个分支,该分支就是我们的生产环境。

         当我们创建了一个开发环境的分支时,并且切入到了该分支中,如果我们要删除开发分支我们不能在改分支中进行删除,必须要切换到不是删除指定分支的分支中进行删除。

         现在我们在文件夹中创建十个文件模拟项目中的十个功能,然后我们创建一个测试环境的分支。

         假设我们项目中十个功能只开发了六个功能,但是客户要求提交验视一下,所以提交完成了的六个功能到测试哪进行测试。这是在开发环境下提交的

         这时是由四个是没有进行配置的,接着我们进行提交到我们的本地仓库去,当我们再次查看我们的状态时,我们会显示四个未进行配置的文件。

         接下来是我们的测试人员要拿到我们开发人员所提交的六个项目功能进行测试,所以先转换到我们的测试环境,然后再获取到开发人员提交的六个项目功能。

        当我们切回我们的生产环境的时候,再去查看文件夹时则只会显示未托管的四个文件。

         现在我们的测试人员测试从开发传过来的六个项目功能的文件时,发现有两个项目功能有误,现在要将两个项目功能给退回去给开发人员。

        当提交之后,我们再查看文件状态,会发现没有文件了。 然后通过测试的只有四个项目功能我们将这四个与我们的生产环境进行合并。

        这是这是确定要上线的项目的四个项目功能,现在的四个项目功能在我们的本地分支上,接下来是要将我们的项目分支传输到远程分支上去。

        推送完分支之后我们在gitee官网刷新即可查看 

二、Git之标签

1. 标签简介

1.1 概述

        在Git中,标签(tag)是一种用于对代码库的特定版本进行标记或命名的机制。它通常用于对发布版本、里程碑或重要节点进行标记,以便于后续的版本控制和追踪。

        标签可以看作是一种指向提交记录的引用,它与提交记录关联,并包含标签的名称、日期、标签描述等信息。轻量标签只是一个指向提交对象的引用,不包含任何元数据。带注释的标签则是一个独立的对象,包含了标签的名称、日期、标签描述等信息,以及指向提交对象的引用。

        创建标签的命令是git tag,可以使用该命令创建轻量标签或带注释的标签。标签可以用于对发布版本进行标记、对某一历史版本进行快速跳转、对重要节点进行标记等等。Git标签的最大优点就是不会随着代码的修改而改变,这意味着标签是永久性的,并且可以在未来的任意时刻被检索到。

1.2 标签的使用

  1. 列出当前仓库的所有标签:git tag

  2. 列出所有标签及说明:git tag -n

  3. 搜索符合条件的标签:git tag -l "1.0.*"

  4. 查看标签信息:git show v1.0.1

  5. 创建标签:git tag "指定标签名"

  6. 创建带有说明的标签:git tag -a "指定标签名" -m "指定说明文字"

  7. 本地标签推送到远程仓库:git push origin <tagname>

  8. 获取指定标签的代码:可以使用git checkout <tagname>

  9. 获取指定标签的代码:可以使用git checkout <tagname>

1.3 使用标签的好处

  1. 版本定位:标签可以指向代码库中的特定版本,如发布版本、里程碑或重要节点。通过使用标签,可以轻松地标识和定位这些重要版本。
  2. 版本控制:标签可以与提交记录关联,并包含标签的名称、日期、标签描述等信息。这有助于在未来的任意时刻检索到标签指向的代码版本。
  3. 简化管理:通过创建标签,可以按照不同的版本需求进行管理。比如,对于发布版本,可以创建带注释的标签,以便于后续的版本控制和追踪。
  4. 灵活性:标签是一种灵活的机制,可以用于对代码库中的特定版本进行标记或命名。这意味着可以根据需要创建或删除标签,以满足不同的版本控制需求。
  5. 可重用性:标签一旦创建,就可以在未来的任意时刻被检索和使用。这使得标签具有很高的可重用性,特别是在需要回滚到特定版本或查看历史版本时。
  6. 可扩展性:Git标签是一个独立的对象,可以包含额外的元数据信息。这意味着可以根据需要扩展标签的功能,以满足特定的版本控制需求。

2. 标签的使用(结合场景说明) 

        我们先切回到我们开发分支中,查看是否有打过标签,然后创建一个开发分支的标签。 

         我们的开发人员将项目功能传输给测试人员时并且进行了打包,传输到远程仓库中去了。 

         这是我们的测试人员测试完我们开发人员传输过来的项目功能后,将不合格的项目功能模块退回给力开发人员,将符合标准的项目功能进行分支后,将项目功能传输给了生产环境进行部署上线,我们在生产环境进行打标签标记。

 

         并且推送到官网上去,我们到官网进行查看

         这时我们的开发人员发现了问题,对有问题的两个文件进行了修改,我们先换回开发分支,然后对4,5文件内容进行修改,我们对其提交

         然后对其打标签标记是修改过的,并且推送

本期的博客分享到此结束

三连加关注

感谢支持

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络奇遇记】我和因特网的初相遇2 —— 三种交换方式

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 前言一. 电路交换1.1 电路交换讲解1.2 电路交换实例 二. 分组交换1.1 分组交换讲解1.2 分组交换实例…

Go 14岁了

今天我们庆祝Go开源十四周年&#xff01;Go度过了美好的一年&#xff0c;发布了两个功能齐全的版本和其他重要的里程碑。 我们在2月份发布了Go 1.20&#xff0c;在8月份发布了Go 1.21&#xff0c;更多地关注实现改进而不是新的语言更改。 在Go 1.20中&#xff0c;我们预览了配置…

基于Python+Django的图书管理系统

项目介绍 图书是人类文明传播的一个重要方式&#xff0c;很多历史悠久的文明都是通过图书来进行传递的&#xff0c;虽然随着时代的进步电子信息技术发展很快&#xff0c;但是纸质图书的地位仍然是非常稳固的&#xff0c;为了能够让知识拥有更加快捷方便的传递方式我们开发了本…

Typora-PicGo-七牛云图床

Typora-PicGo-七牛云图床 问题描述&#xff1a; 每次使用Typora写完笔记后&#xff0c;想要将笔记上传至CSDN会发现一个问题&#xff0c;由于没有配置图床&#xff0c;笔记中的图片需要一张一张的上传到CSDN&#xff0c;非常麻烦&#xff0c;若使用PicGo并搭配七牛云的10G免费…

Django配置文件,request,链接mysql方法,Orm简介

三板斧问题(views.py) HttpResponse # 返回的是字符串render # 渲染一个HTML静态文件&#xff0c;模板文件redirect # 重定向的 在视图文件中得视图函数必须要接收一个形参request&#xff0c;并且&#xff0c;视图函数也要有返回值&#xff…

Linux - 基础IO(重定向 - 重定向模拟实现 - shell 当中的 重定向)- 下篇

前言 上一篇博客当中&#xff0c;我们对 文件 在操作系统当中是 如何就管理的&#xff0c;这个问题做了 详细描述&#xff0c;本篇博客将基于上篇 博客当中的内容进行 阐述&#xff0c;如有疑问&#xff0c;请参考上篇博客&#xff1a; Linux - 基础IO&#xff08;Linux 当中…

matlab 多自由度的车辆垂向振动模型 车辆平稳性研究

1、内容简介 略 17-可以交流、咨询、答疑 多自由度的车辆垂向振动模型 多自由度的车辆垂向振动模型&#xff0c;包含四分之一车体模型、半车模型和整车模型 垂向振动模型、四分之一车体模型、半车模型和整车模型 2、内容说明 略 3、仿真分析 略 4、参考论文 略 链接&…

第七章 块为结构建模 P3|系统建模语言SysML实用指南学习

仅供个人学习记录 块行为建模 块提供了行为情境&#xff0c;行为这个 SysML 词条覆盖了块如何处理输如/输出和其内部状态改变的所有描述。 块可以指定某个行为作为其主行为或者分类器行为&#xff0c;该行为在块实例化后启动执行。其他行为可以指定为方法&#xff0c;提供了处…

人机交互——自然语言生成

自然语言生成是让计算机自动或半自动地生成自然语言的文本。这个领域涉及到自然语言处理、语言学、计算机科学等多个领域的知识。 1.简介 自然语言生成系统可以分为基于规则的方法和基于统计的方法两大类。基于规则的方法主要依靠专家知识库和语言学规则来生成文本&#xff0…

【Redis】list列表

上一篇&#xff1a; String 类型 https://blog.csdn.net/m0_67930426/article/details/134362606?spm1001.2014.3001.5501 目录 Lpush LRange Rpush Lpop Rpop Lindex Ltrim Lset 列表不存在的情况 如果列表存在 Linsert ​编辑 在………之前插入 在……后面插入…

Windows系统安装Redis、配置环境变量

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

【 第十一章】软件设计师 之 面向对象设计与结构化分析设计

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 备考资料导航 软考好处&#xff1a;软考的…

域名无法访问了,如何找回浏览器的缓存

背景需求 双十一即将来临&#xff0c;这意味着我购买了三年低配的阿里服务器&#xff0c;而它的服务期限也即将到期。为了提前做好准备&#xff0c;我在一周前对静态网站进行了备份&#xff0c;并成功地使用了Vercel进行部署&#xff08;已经有了域名&#xff09;。相比于付费…

腾讯云3年轻量应用服务器2核2G4M带宽540元,它来了

腾讯云轻量应用服务器特价是有新用户限制的&#xff0c;所以阿腾云建议大家选择3年期轻量应用服务器&#xff0c;一劳永逸&#xff0c;免去续费困扰。腾讯云轻量应用服务器3年可以选择2核2G4M和2核4G5M带宽&#xff0c;3年轻量2核2G4M服务器540元&#xff0c;2核4G5M轻量应用服…

jdk21 虚拟线程原理及使用分享

虚拟线程概述 jdk21已于北京时间9月19日21点正式发布, 其中引人注目的就是虚拟线程(Virtual Thread)随之正式发布, 不再是此前jdk19、jdk20中的预览版本。 平台线程&#xff1a;java传统的线程是对系统线程的包装&#xff0c;为了区别于虚拟线程&#xff0c;因此将通过传统方式…

C#源代码生成器深入讲解一

C#源代码生成器 01 源代码生成器初体验 新建一个类库&#xff0c;一定是standard2.0版本&#xff0c;否则会出问题。引用Nuget包Microsoft.CodeAnalysis.Common新建一个类&#xff0c;继承自ISourceGenerator接口 //一定要写&#xff0c;制定语言 [Generator(LanguageNames.…

Django 基于ORM的CURD、外键关联,请求的生命周期

文章目录 基于ORM进行的CURDORM外键关联Django请求的生命周期流程图 基于ORM进行的CURD 本质上就是通过面向对象的方式&#xff0c;对数据库的数据进行增、删、改、查。 这里将会将我们之前所有内容结合到一起&#xff0c;首先确保基于上序操作已经建立好了UserInfo表&#xff…

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

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

Python 使用tkinter的Scrollbar方法创建Text水平和垂直滚动条

在Python的Tkinter中&#xff0c;可以使用Scrollbar来实现Text组件的上下或左右滑动。首先&#xff0c;需要创建一个Scrollbar对象并将其与Text组件绑定&#xff0c;然后将Scrollbar放置在Text组件的右侧或底侧&#xff0c;使其能够控制Text组件的上下或左右滑动。 运行结果&am…

隔离在高可用架构中的使用

写作目的 最近看到了河北王校长隔离的视频&#xff0c;结合自己在工作中的应用&#xff0c;分享常见的隔离落地方案。 隔离落地方案 服务环境隔离 因为我们的项目服务于整个国内的多条产品线&#xff0c;也服务于国外。为了低成本所以使用一套代码。在产品线之间隔离&#…