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


 🎉🎉欢迎来到我的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.mzph.cn/news/140031.shtml

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

相关文章

Java学习_对象

对象在计算机中的执行原理 类和对象的一些注意事项 this关键字 构造器 构造器是一种特殊的方法 : 特殊之处在于&#xff0c;名字必须与所在类的名字一样&#xff0c;而且不能写返回值类型 封装 封装的设计规范&#xff1a;合理隐藏、合理暴露 实体类 成员变量和局部变量的区别 …

微信聊天,收到二维码图片就自动帮你提取出来的方法

10-3 如果你是二维码收集的重度用户&#xff0c;那我非常推荐你好好阅读本文&#xff0c;也许可以帮你解决你的问题&#xff0c;比如做网推的人&#xff0c;需要常年混迹在各种微信群&#xff0c;那如何在各个微信群中收集到群友分享出来的二维码&#xff0c;并且要立即保存出…

组件的设计原则

目录 插槽的基本概念 基础用法 具名插槽 使用场景 布局控制 嵌套组件 组件的灵活性 高级用法 作用域插槽 总结 前言 Vue 的 slot 是一项强大的特性&#xff0c;用于组件化开发中。它允许父组件向子组件传递内容&#xff0c;使得组件更加灵活和可复用。通过 slot&…

Python之函数进阶-nonlocal和LEGB

Python之函数进阶-nonlocal和LEGB nonlocal语句 nonlocal:将变量标记为不在本地作用域定义&#xff0c;而是在上级的某一级局部作用域中定义&#xff0c;但不能是全局作用域中定义。 函数的销毁 定义一个函数就是生成一个函数对象&#xff0c;函数名指向的就是函数对象。可…

华为云Ascend310服务器使用

使用华为云服务器 cpu: 16vCPUs Kunpeng 920 内存&#xff1a;16GiB gpu&#xff1a;4* HUAWEI Ascend 310 cann: 20.1.rc1 操作系统&#xff1a;Ubuntu aarch64目的 使用该服务器进行docker镜像编译&#xff0c;测试模型。 已知生产环境&#xff1a;mindx版本为3.0.rc3&a…

【机器学习】Kmeans聚类算法

一、聚类简介 Clustering (聚类)是常见的unsupervised learning (无监督学习)方法&#xff0c;简单地说就是把相似的数据样本分到一组&#xff08;簇&#xff09;&#xff0c;聚类的过程&#xff0c;我们并不清楚某一类是什么&#xff08;通常无标签信息&#xff09;&#xff0…

通义千问, 文心一言, ChatGLM, GPT-4, Llama2, DevOps 能力评测

引言 “克隆 dev 环境到 test 环境&#xff0c;等所有服务运行正常之后&#xff0c;把访问地址告诉我”&#xff0c;“检查所有项目&#xff0c;告诉我有哪些服务不正常&#xff0c;给出异常原因和修复建议”&#xff0c;在过去的工程师生涯中&#xff0c;也曾幻想过能够通过这…

【FAQ】Gradle开发问题汇总

1. buildSrc依赖Spring Denpendency时报错 来自预编译脚本的插件请求不能包含版本号。请从有问题的请求中删除该版本&#xff0c;并确保包含所请求插件io.spring.dependency-management的模块是一个实现依赖项 解决方案 https://www.5axxw.com/questions/content/uqw0grhttps:/…

基于springboot实现桥牌计分管理系统项目【项目源码】计算机毕业设计

基于springboot实现桥牌计分管理系统演示 JAVA简介 JavaScript是一种网络脚本语言&#xff0c;广泛运用于web应用开发&#xff0c;可以用来添加网页的格式动态效果&#xff0c;该语言不用进行预编译就直接运行&#xff0c;可以直接嵌入HTML语言中&#xff0c;写成js语言&#…

MYSQL操作详解

一)计算机的基本结构 但是实际上&#xff0c;更多的是这种情况: 二)MYSQL中的数据类型: 一)数值类型: 数据类型内存大小(字节)说明bit(M)M指定位数,默认为1单个二进制位值&#xff0c;或者为0或者为1&#xff0c;主要用于开/关标志tinyint1字节1个字节的整数值&#xff0c;支持…

使用openvc进行人脸检测:Haar级联分类器

1 人脸检测介绍 1.1 什么是人脸检测 人脸检测的目标是确定图像或视频中是否存在人脸。如果存在多个面&#xff0c;则每个面都被一个边界框包围&#xff0c;因此我们知道这些面的位置 人脸检测算法的主要目标是准确有效地确定图像或视频中人脸的存在和位置。这些算法分析数据…

一文入门Springboot+actuator+Prometheus+Grafana

环境介绍 技术栈 springbootmybatis-plusmysqloracleactuatorPrometheusGrafana 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 1.8 Spring Boot 2.7.13 mybatis-plus 3.5.3.2 本地主机应用 192.168.1.9:8007 PrometheusGrafana安装在同一台主机 http://…

[西湖论剑 2022]real_ez_node

文章目录 前置知识EJS模板注入&#xff08;CVE-2022-29078&#xff09;原型链污染漏洞 &#xff08;CVE-2021-25928&#xff09;HTTP响应拆分攻击&#xff08;CRLF&#xff09; 解题过程代码审计构造payload 前置知识 EJS模板注入&#xff08;CVE-2022-29078&#xff09; EJS…

.net在使用存储过程中IN参数的拼接方案,使用Join()方法

有时候拼接SQL语句时&#xff0c;可能会需要将list中的元素都加上单引号&#xff0c;并以逗号分开&#xff0c;但是Join只能简单的分开&#xff0c;没有有单引号&#xff01; 1.第一种拼接方案 List<string> arrIds new List<string>(); arrIds.Add("aa&qu…

Cross-Origin跨站问题详解(跨站请求、跨站cookie)

背景&#xff1a;我部署frontend和backend到两个不同的docker容器&#xff0c;前端路径为http://localhost:3000&#xff0c;后端路径为http://localhost:4000。我设置了用户登录功能&#xff0c;并使用cookie进行session管理。当我的前端登录时&#xff0c;创建了一个session&…

【Java 进阶篇】Java与JQuery选择器:解锁前端开发的魔法大门

在前端开发的世界中&#xff0c;选择器是我们与HTML文档进行互动的钥匙&#xff0c;而Java和JQuery则为我们提供了强大的工具&#xff0c;使得前端开发不再是一个艰深的谜题。本篇博客将围绕Java与JQuery选择器展开&#xff0c;深入解析选择器的奥秘&#xff0c;为你打开前端开…

C++ 模板保姆级详解——template<class T>(什么是模板?模板分哪几类?模板如何应用?)

目录 一、前言 二、 什么是C模板 &#x1f4a6;泛型编程的思想 &#x1f4a6;C模板的分类 三、函数模板 &#x1f4a6;函数模板概念 &#x1f4a6;函数模板格式 &#x1f4a6;函数模板的原理 &#x1f4a6;函数模板的实例化 &#x1f34e;隐式实例化 &#x1f349;显式实…

【STM32】TIM2的PWM:脉冲宽度调制--标准库

注意点&#xff1a; TIM_Period---->指要进行比较的值Compare TIM_Prescaler----> 指要进行分频的值【分频值/原始时钟值】 PWM是一种周期固定&#xff0c;脉宽可调整的输出波形。 https://www.cnblogs.com/brianblog/p/7117896.html 0.通用寄存器输出 1.捕获/比较通道…

面向萌新的技术博客入门指南

Python之禅 在Python的解释器中隐藏一个彩蛋&#xff0c;输入import this就会返回19条Python之禅&#xff0c;具体如下&#xff1a; import this The Zen of Python, by Tim Peters Python之禅 &#xff0c;by Tim Peters Beautiful is better than ugly. 优美好于丑陋&…

clouldcompare工具使用

文章目录 1.界面1.1 布局1.3 视觉显示方向1.4 放大镜1.5 建立旋转中心2.快速入门2.1 剪裁2.2 多点云拼接 1.界面 1.1 布局 参考&#xff1a;https://blog.csdn.net/lovely_yoshino/article/details/129595201 1.3 视觉显示方向 1.4 放大镜 1.5 建立旋转中心 2.快速入门 2.1 …