【Git】工作中的留痕:分支及标签的超神搭配

news2024/11/20 6:23:49

🥳🥳Welcome Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于Git的相关操作吧 

     

目录

🥳🥳Welcome Huihui's Code World ! !🥳🥳

一.Git分支是什么

二.Git分支的使用

1.分支的使用场景

2.分支的命令操作

1.增加

2.删除

3.查看

4.切换分支

​5.创建+切换分支

​6.合并某分支到当前分支

7.提交到远程

3.IDEA操作分支

1)IDEA操作git分支

2)IDEA中分支的相关操作

①新增分支

②删除分支

③查看分支

查看

将本地分支推送到码云

三.Git标签是什么  

四.Git标签的使用

1.分支的命令操作

 ①.查看所有标签

②.创建tag

③.推送标签到远程

④.删除tag

删除本地tag

删除远程tag  

​2.IDEA操作标签

1)IDEA操作git标签

2)IDEA中分支的相关操作

①增加标签

②删除标签

③查看标签

💡辉辉小贴士💡 关于分支和标签必须知道的小常识!!

1.分支的命名规范

2.标签

3.分支与标签的关系

4.软件的命名规则

5.版本命名规范 


         在正式讲解今天的干货知识之前,我们先来了解一下,在实际开发中,到底是怎么使用Git的

        我们开发的时候,往往会面临这样的场景:我们做一个中大型的项目,常常会被分为好几个阶段,一步步的去完成一个项目。当我们完成了第一个阶段后,就会投入到第二阶段的开发,但同时也需要修复阶段一的bug,但不可能停止第二阶段的开发转而都去修复第一阶段的代码,这时我们便可用到分支,两个事情并齐而行。

        一个项目在开发的过程中,客户会想要看到一部分的效果,那我们就要把已经做好的模块给到客户,但是给到客户之前,还需要经过测试等等的一些流程。在这些流程中,可能会出现这样的情况:开发人员在把完成的模块交于测试之前,会先检查自己需要提交的模块是否有错误,当检查完毕之后,才会把对应模块交于测试。但是当测试人员去进行项目测试时,却发现项目有一些模块中存在bug。那么此时开发人员和测试人员就免不得一场辩论了,但如果我们使用了git中的标签就可以很大程度的避免掉这种情况的发生,两人可以去查看开发人员所提交的那一个版本的代码,或许是测试人员漏掉了一些关键资料等等,这样也能够提高整个项目的开发效率。

        

        了解完了上述的内容,可以让我们更好的运用下面的知识!

一.Git分支是什么

        Git分支是Git版本控制系统中的一个重要概念。它可以让开发人员在同一个代码库中并行开发多个独立的功能或修复不同的bug,从而使软件开发变得更加灵活和高效。

        在Git中,分支就是指向具体提交的指针。Git默认创建一个名为"master"的主分支,表示主要的开发线路。在这个主分支上进行的开发工作形成了项目的主要历史线。除了主分支外,开发人员还可以为各种不同的需求或任务创建其他分支。

        创建新的分支后,开发人员可以在这个新的分支上独立地进行开发工作,而不会影响主分支或其他分支。开发人员可以在新分支上进行实验、尝试新功能、修复bug等,而不会破坏主分支的稳定性。

        当开发人员完成了在分支上的工作后,可以选择将该分支的改动合并到主分支或其他目标分支中。Git提供了强大的合并和分支管理工具,使得合并过程相对简单且自动化。

二.Git分支的使用

1.分支的使用场景

  • 功能开发分支:当开发团队需要添加新功能时,他们通常会创建一个新的分支来进行开发。这个分支可以独立于主干开发进行,并且不会影响其他功能的开发进度。一旦开发完成并且经过测试,这个分支就可以合并到主干上,将新功能发布给用户。
    • 例如,你在开发一个电商网站,正在添加一个购物车功能。你可以创建一个名为"shopping-cart"的分支,并在该分支上进行购物车功能的开发。这样,其他开发人员可以继续在主干上进行其他功能的开发,而购物车功能的开发则可以在分支上进行,互不干扰。一旦购物车功能开发完成,你可以将该分支合并回主干。
  • 修复bug分支:当发现线上版本存在bug时,为了及时修复问题,开发团队通常会创建一个新的分支来修复bug。这个分支可以从对应的发布版本创建,并且只包含与修复该bug相关的变更。修复bug的分支通常会经过测试,并在修复完成后合并回主干和其他分支中。
    • 例如,你在开发一个音乐播放器应用程序,用户反馈在特定设备上无法播放某些音乐文件。你可以从对应的发布版本创建一个名为"bug-fix"的分支,并在该分支上进行修复工作。修复完成后,你可以将该分支合并回主干和其他分支,将修复后的版本发布给用户。
  • 版本发布分支:当准备发布一个新的版本时,开发团队通常会创建一个版本发布分支。这个分支可以在发布前进行最后的测试和准备工作,以确保新版本的稳定性。一旦版本准备就绪,发布分支可以合并回主干,并作为新版本发布。
    • 例如,你的团队计划发布一个软件更新,包含多个功能改进和bug修复。你可以创建一个名为"release-v2.0"的分支,并将这个分支用作版本发布分支。在这个分支上,你可以进行最后的功能测试、性能测试和文档更新等准备工作。完成后,你可以将发布分支合并回主干,并进行版本发布。

2.分支的命令操作

1.增加

git branch 分支名字

2.删除

  git branch -d 分支名字

3.查看

  git branch

4.切换分支

git checkout 分支名字

5.创建+切换分支

  git checkout -b 分支名字

6.合并某分支到当前分支

注意:合并不是删除之前的分支,所以之前的合并进来的分支也还是存在的

7.提交到远程

git push origin  分支名字

3.IDEA操作分支

1)IDEA操作git分支

2)IDEA中分支的相关操作

我们按照前面的操作,就可以进到操作分支的这个界面了

①新增分支

创建完了,在IDEA的下方也会有一个提示

②删除分支

③查看分支
查看
将本地分支推送到码云

三.Git标签是什么  

   Git标签是Git版本控制系统中的一个重要概念,它通常被用于标记代码库的特定版本或重要的里程碑。

        与Git分支不同,Git标签是一个静态的指针,指向特定的提交(commit),而不是分支上的移动指针。标签通常用于在代码库中的某个特定提交上做一个有意义的标记,方便以后的引用和识别。

        标签可以用于标记软件发布的版本号、重要的里程碑、发布日期等信息。它可以帮助团队或开发者追踪项目的演进和历史,同时也有助于在不同的版本之间进行比较和回溯

在Git中,有两种类型的标签:轻量标签(Lightweight Tags)和附注标签(Annotated Tags)。

                轻量标签是Git中最简单的一种标签形式,只包含一个指向特定提交的引用。创建轻量标签非常简单,只需在需要标记的提交上运行简单的命令即可。

                附注标签则是一个独立于分支的Git对象,其中包含有关标签的信息,如标签名称、标签的创建者、创建日期、一个标签消息等。附注标签比轻量标签更推荐使用,因为它们可以提供更多的元数据和信息,方便团队成员之间的沟通和理解。

四.Git标签的使用

1.分支的命令操作

 ①.查看所有标签

注意:标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息

  git tag

②.创建tag

  一定要切换到需要打标签的分支上,例如:dev,再创建标签

  git checkout dev

创建标签

git tag 1.0.0-alpha

git标签分为两种类型:轻量标签和附注标签,区别:附注标签带注解

git tag 1.0.0-alpha                         //创建轻量标签
git tag -a 1.0.0-alpha -m "一期开发完成"    //创建附注标签

③.推送标签到远程

 git push origin 1.0.0-alpha

④.删除tag

删除本地tag

因为创建的标签都只存储在本地,不会自动推送到远程。所以,标签可以在本地直接删除
     

 git tag -d 1.0.0-alpha
删除远程tag  

 1.如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除
   

git tag -d 1.0.0-alpha

   2.然后,再从远程删除。删除命令也是push,但是格式如下:
 

git push origin :refs/tags/1.0.0-alpha

2.IDEA操作标签

1)IDEA操作git标签

2)IDEA中分支的相关操作

①增加标签

创建成功之后也会有相应的提示

②删除标签

  在idea中由于没有找到删除标签的功能,所以只能采用命令行的方式进行 删除本地tag!

③查看标签

如果有这个标签,便会切换到这个标签

💡辉辉小贴士💡 关于分支和标签必须知道的小常识!!

1.分支的命名规范

   dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。
   test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定
   pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。
   pro(master)环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境。

2.标签

lpha
beta
rc
r

3.分支与标签的关系

 dev-->alpha
 test-->beta
 pre-->rc
 pro-->r

4.软件的命名规则

  1.Base版:
    此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是页面中的功能都没有做完整的实现,
    只是做为整体网站的一个基础架构

  2.Alpha版: 
    此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,
    该版本软件的Bug较多,需要继续修改

  3.Beta版: 
    该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,
    需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI

  4.RC版: 
    该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几

  5.Release版: 
    该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。
    该版本有时也称为标准版。一般情况下,Release不会以单词形式出现在软件封面上,取而代之的是符号(R)。

5.版本命名规范
 

软件版本号由四部分组成,
第一个1为主版本号,
第二个1为子版本号,
第三个1为阶段版本号,
第四部分为日期版本号加希腊字母版本号,


希腊字母版本号共有5种,
分别为:base、alpha、beta、RC、release。
例如:1.1.1.051021_beta。

好啦,今天的分享就到这了,希望能够帮到你呢!😊😊  

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

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

相关文章

CDN加速与网站服务器优化提速的区别

在当今数字化时代&#xff0c;网站性能成为了业务成功的关键因素之一。为了提升用户体验和页面加载速度&#xff0c;许多网站采取了不同的优化手段&#xff0c;其中CDN加速和网站服务器优化提速是两个重要的方向。然而&#xff0c;它们在实现高效网站性能方面有着不同的角色和功…

【Redis】redis-server和redis-cli

上一篇《redis 的下载和安装》 https://blog.csdn.net/m0_67930426/article/details/134341071?spm1001.2014.3001.5501 安装完之后开始使用 打开客户端之前需要先打开服务端 redis-server 直接使用该命令打开就行 然后在打开客户端 redis-cli 使用ping命令查看是否连接服…

ARM Linux 基础学习 / 系统相关,文件系统,文件属性

编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料&#xff08;如 百问网的《嵌入式Linux应用开发完全手册》&#xff0c;在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO&#xff1a;开发板资料》或《2.2 全系列Linux教程&#xf…

华为ensp:vrrp双机热备负载均衡

现在接口ip都已经配置完了&#xff0c;直接去配置vrrp r1上192.168.1.100 作为主 192.168.2.100作为副 r2上192.168.1.199 作为副 192.168.2.100作为主 这样就实现了负载均衡&#xff0c;如果两个都正常运行时&#xff0c;r1作为1.1的网关&#xff0c;r2作为2.1网关…

「Verilog学习笔记」4bit超前进位加法器电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 timescale 1ns/1nsmodule lca_4(input [3:0] A_in ,input [3:0] B_in ,input C_1 ,output wire CO ,output wire [3:0] …

SpringBoot3数据访问

SpringBoot3数据访问 SpringBoot整合 Spring、SpringMVC、MyBatis进行数据访问开发。 整合SSM场景 整合步骤 1、创建SSM整合项目 ①数据库准备 DROP TABLE IF EXISTS t_user; CREATE TABLE t_user (id bigint NOT NULL AUTO_INCREMENT COMMENT 编号,login_name varchar(200)…

git的分支及标签使用结合全网最详细的情景演示

目录 一git的分支 ⭐⭐ 补充一个拓展知识&#xff1a; 1.1 git分支 1.2 git分支的增删查命令 1.3 情景演示 二.git标签 2.1 分支与标签的关系 2.2 git标签的基本命令 2.3 情景演示 一git的分支 ⭐⭐ 补充一个拓展知识&#xff1a; 软件开发中常见的四个环境&…

【Java】注解(Annotation)

1.注解 就是lava代码里的特殊标记&#xff0c;比如:Override、Test等&#xff0c;作用是:让其他程序根据注解信息来决定怎么执行该程序。注意:注解可以用在类上、构造器上、方法上、成员变量上、参数上、等位置处。 如下Override所示&#xff1a; 2.自定义注解 就是自己定义…

零基础学习Matlab,适合入门级新手,了解Matlab

一、认识Matlab Matlab安装请参见博客 安装步骤 1.界面 2.清空环境变量及命令 &#xff08;1&#xff09;clear all &#xff1a;清除Workspace中的所有变量 &#xff08;2&#xff09;clc&#xff1a;清除Command Window中的所有命令 二、Matlab基础 1.变量命名规则 &a…

第1关:完整的包装类

题目&#xff1a; 根据给定头文件写cpp文件 /********** BEGIN **********/ #include"Int.h"int Int::getValue()const{return value;} void Int::setValue(int v){valuev;} Int::Int(){value0;} Int::Int(int v){valuev;} Int::Int(const Int&rhs){this->v…

fetch函数没有默认超时时间的配置吗

chatgpt&#xff1a; https://chat.xutongbao.top/ 截至我知识的最后更新时间&#xff08;2023年&#xff09;&#xff0c;原生的 fetch API 在大多数浏览器中并没有内置的默认超时时间。这意味着如果你没有明确地设置一个超时期限&#xff0c;fetch 请求可能会永远挂起&…

通过结构间比值比较迭代次数

( A, B )---3-30-2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;A有5个点&#xff0c;B全是0&#xff0c;排列组合。让A,B训练集分别有3&#xff0c;4&#xff0c;5&#xff0c;6张图片&#xff0c;统计迭代次数并排序。 先比较图片数量是3和4的情况 n4 迭代次数…

HTML5+CSS3+Vue小实例:输入框打字放大特效

实例:输入框打字放大特效 技术栈:HTML+CSSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=&…

数据架构与数据模型

数据架构&#xff1a; 待定 数据模型&#xff1a; 数据模型是对现实世界数据特征的抽象&#xff0c;用于描述一组数据的概念和定义。数据模型从抽象层次上描述了数据的静态特征、动态行为和约束条件。数据模型所描述的内容有三部分&#xff0c;分别是数据结构、数据操作和数…

【数据结构】入队序列出队序列问题(以21年408真题举例)

题型说明 一般是一个队列&#xff0c;其中一边可以入队&#xff0c;另一边可以入队和出队只可入队的含义是从这个方向是以队列形式存在可以入队和出队表示此边以堆形式存在 怎么分析&#xff1f; 以21年408真题举例 考点分析 出队序列存在两种情况&#xff1a;入之后就出&…

外部董事的职责与作用

&#xff08;一&#xff09;监督公司的管理与运营 外部董事在公司治理中的一个重要职责就是监督公司的管理与运营&#xff0c;监督公司管理层是否有效执行公司战略、规章制度和内控机制&#xff0c;帮助公司识别管理和运营上的问题&#xff0c;从而提供正确的决策和解决方案。比…

大二第四周总结——用原生js封装一个分页器

用原生js封装一个分页器 起因&#xff1a;这次项目还是用原生的js来写的&#xff0c;我负责的是后台&#xff0c;分页是后台最常见的一个功能了&#xff0c;于是干脆封装一下,废话少说&#xff0c;直接上代码 这里是基本的样式 .pagination {display: flex;width: 600px;hei…

windows HOOK学习(一)

了解HOOK 一&#xff1a;HOOK是什么&#xff1f;二&#xff1a;HOOK的分类三&#xff1a;HOOK的原理&#xff1f;四&#xff1a;为什么全局钩子HOOK必须写到DLL中&#xff1f;五&#xff1a;HOOK的类型 一&#xff1a;HOOK是什么&#xff1f; hook就是我们平时听到的钩子&…

Arduino ESP8266使用AliyunIoTSDK.h连接阿里云物联网平台

文章目录 1、AliyunIoTSDK简介2、相关库安装3、阿里云创建产品&#xff0c;订阅发布4、对开源的Arduino ESP8266源代码修改5、使用阿里云点亮一个LED灯6、设备向阿里云上传温度数据7、项目源码 1、AliyunIoTSDK简介 AliyunIoTSDK是arduino的一个库&#xff0c;可以在arduino的…

第 371 场 LeetCode 周赛题解

A 找出强数对的最大异或值 I 模拟 class Solution { public:int maximumStrongPairXor(vector<int> &nums) {int n nums.size();int res 0;for (auto x: nums)for (auto y: nums)if (abs(x - y) < min(x, y))res max(res, x ^ y);return res;} };B 高访问员工 …