【Git】的分支与版本

news2024/11/26 18:22:49

前言

Git 的分支是指将代码库从某一个特定的提交记录开始的一个独立的开发线,也可以理解为是一种代码开发的并行方式。分支在 Git 中的使用非常广泛,它可以让多人在同一个代码库中并行开发,同时也能够很方便地进行代码版本控制和管理。

Git 分支的特点

1. 分支可以在一定程度上保证代码的稳定性和可靠性。通过在一个独立的分支上进行代码开发,可以避免对主分支的影响。

2. 分支可以非常方便地进行合并和切换。Git 提供了非常好用的合并和切换命令,可以让开发者轻松地在不同的分支之间进行切换和合并操作。

3. Git 的分支操作非常快速和高效。Git 的分支操作都是基于快照的,而不是复制原有的代码,所以不会占用过多的磁盘空间和系统资源。

4. 分支可以为 Git 提供更好的代码管理和版本控制。使用分支可以让开发者在不同的代码库之间进行版本控制,方便代码的追溯和管理。

在 Git 中,分支的使用非常广泛,是 Git 管理代码的重要工具之一。开发者可以根据不同的需求,自由地创建、合并、删除和切换不同的分支。通过合理使用分支,可以提高代码质量和开发效率。

Git的四个环境:

  1. 开发环境(Development Environment):

    • 目的: 主要用于开发新功能或修改现有功能。这是开发人员工作的地方,他们可以进行代码编写、调试和单元测试。
    • 特点: 可能会使用模拟的服务或虚拟化环境,以便更容易调试和测试代码。开发环境的代码通常是最新的,并可能包含一些实验性质的功能。
  2. 测试环境(Testing Environment):

    • 目的: 用于进行各种测试,包括单元测试、集成测试、系统测试等。在测试环境中,团队可以模拟生产环境并检查系统在不同条件下的表现。
    • 特点: 与开发环境相比,测试环境更接近真实的生产环境设置。数据库和其他服务可能与生产环境相同,但通常不包含真实用户的数据。
  3. 灰度环境(Staging or Pre-Production Environment):

    • 目的: 用于模拟真实的生产环境,并在生产环境之前进行最终测试。在灰度环境中,团队可以测试部署流程、性能、可伸缩性等方面的问题。
    • 特点: 与测试环境相比,灰度环境更接近生产环境,但通常不对外提供服务。这个环境用于评估系统的整体性能和稳定性,以确保在生产环境中没有潜在问题。
  4. 生产环境(Production Environment):

    • 目的: 生产环境是最终用户访问应用程序的地方。在这里,系统必须保持高可用性、性能和安全性。
    • 特点: 生产环境是最重要的环境,部署到这里的代码必须经过全面的测试。任何更改都应该经过严格的版本控制和部署流程,以确保不会引入错误或破坏现有功能。

在这些环境之间,Git通常用于版本控制。开发人员在开发环境中进行工作并使用Git进行代码管理。然后,代码被推送到测试环境,接着是灰度环境,最终到生产环境。这种流程有助于确保在生产环境中发布的代码是经过充分测试和验证的。同时,使用分支、标签等Git功能有助于管理不同环境的代码状态 

 一.分支的场景应用

1.命令

查看分支:git branch

创建分支:git branch 分支名 

删除分支:git branch -d 分支名 

切换到指定分支:git checkout 分支名

创建并切换分支:git checkout -b 分支名

2.模拟场景 

模拟不同模块要提交到不同分支中,例如:开发人员将已开发好的模块提交推送到测试分支中,未开发好的模块提交推送到开发分支中

原理:模拟将不同文件提交到不同分支,在不同分支中进行再进行推送到远程仓库中

(1)模拟模块

在目录中保存几个java文件模拟开发模块

(2)模拟操作

1.将模块1-4暂存到开发环境中(模拟未开发完成的模块)

当我们点击提交后,当前模块就会到当前的分支下,我们在切换分支时就看不到其他分支的模块了 

2.将模块5-8暂存到测试环境中(模拟已开发完成的模块)

3.模块9-10不做操作进行对比暂存推送前后的模块

将所有分支模块推送到远程分支中,先切换到要推送到的分支然后执行以下命令

命令:git push origin 分支名

注意:如果仓库中没有当前分支会自动创建分支

二.标签的应用

1.简介

Git的标签可以用来标记特定的提交,比如版本发布等。标签可以是轻量级标签或带注释标签。

轻量级标签只是一个指向特定提交的引用,类似于分支,但是不会随着提交的变化而移动

2.命令

Git的标签可以用来标记特定的提交,比如版本发布等。标签可以是轻量级标签或带注释标签。

轻量级标签只是一个指向特定提交的引用,类似于分支,但是不会随着提交的变化而移动。可以使用以下命令创建轻量级标签:

git tag  标签名.alpha

带注释标签可以包含注释信息,如版本号、发布日期和说明。可以使用以下命令创建带注释标签:

git tag v1.0.0.0.2023.11.11.alpha

查询所有标签:

git tag 

删除标签使用以下命令:

git tag -d 标签名.alpha

将标签推送到远程仓库使用以下命令:

git push origin 标签名

删除远程仓库的标签需要使用以下命令:

注:在删除远程仓库标签时先将本地标签进行删除

git push origin :refs/tags/标签名

 在实际应用中,标签充当着版本控制的角色,可以用来标记某个版本的代码,便于回溯和比较不同版本的差异,用来标记修复某个Bug的代码,方便查找和回溯。以及标记某个团队成员提交的代码,方便团队成员之间协作和沟通,通过持续集成测试的可行版本,方便后续版本的迭代和开发

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

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

相关文章

PM2学习

目录 PM2简介 pm2的主要特性 PM2安装 启动PM2项目 查看应用列表(查看当前机器执行的所有进程) 查看某个应用详情 重启 停止 删除 日志查看 负载均衡 监控CPU/内存 内存使用超过上限自动重启 监听代码变化/自动重启 PM2简介 PM2是常用的node…

什么是OpenCL?

什么是OpenCL? 1.概述 OpenCL(Open Computing Language 开放计算语言)是一种开放的、免版税的标准,用于超级计算机、云服务器、个人计算机、移动设备和嵌入式平台中各种加速器的跨平台并行编程。OpenCL是由Khronos Group创建和管理的。OpenCL使应用程序…

modbus-RTU是一种比较简单、可靠的协议

modbus-RTU是一种比较简单、可靠的协议 RTU, 是modbus中的一种应用层协议,在OSI的第七层 数据格式 应用

[C国演义] 第二十章

第二十章 最长回文子序列让字符串成为回文串的最少插入次数 最长回文子序列 力扣链接 单个数组讨论子序列 ⇒ dp[i] -- 以nums[i]为结尾的所有子序列中, 回文子序列的最长长度. 然后讨论 最后一个位置的归属情况 但 又要满足 回文结构 ⇒ 二维dp ⇒ dp[i][j] -- 区间[i, j]内…

类加载器(classloader)

作者:ZeaTalk 链接:https://www.zhihu.com/question/49667892/answer/690161827 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 类加载器(classloader) 先从类加载器…

【数据结构】直接插入排序

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

第八章:枚举

系列文章目录 文章目录 系列文章目录前言一、枚举总结 前言 类可以作为常量使用。 一、枚举 枚举是一组常量的集合。可以这里理解: 枚举属于一种特殊的类, 里面只包含一组有限的特定的对象。 枚举的实现方式自定义类实现枚举使用 enum 关键字实现枚举…

MySQL 分库分表与 TiDB(平凯数据库),如何选择?

随着互联网行业的飞速发展,数据量不断增长,传统的关系型数据库已经无法满足大规模数据处理的需求。为了解决这一问题,分库分表和分布式数据库应运而生。本文将对比分析 MySQL 分库分表和 TiDB 这两种解决方案,帮助大家更好地选择适…

自动化测试和手工测试有什么不同以及自动化测试和手工测试应用范围的对比

一、初识自动化测试 如果以前没有做过自动化测试,那么就不了解自动化测试,可能会觉得自动化测试比较神秘,但是,我们在日常的计算机操作中,可能会碰到一些自动化处理的过程,这些过程和自动化测试比较接近。 …

Mysql修改事务隔离级别及与spring隔离级别关系

Mysql如何修改事务隔离级别 1.查询事务级别 1.1查询全局事务隔离级别 select global.tx_isolation; 1.2 查询当前会话事务隔离级别 select session.tx_isolation; 2.修改事务隔离级别 2.1 修改全局事务隔离级别 set global transaction isolation level read committed;…

Kafka 的应用场景

Kafka 是一个开源的分布式流式平台,它可以处理大量的实时数据,并提供高吞吐量,低延迟,高可靠性和高可扩展性。 Kafka 最初是为分布式系统中海量日志处理而设计的。它可以通过持久化功能将消息保存到磁盘,并让消费者按…

景联文科技入选量子位智库《中国AIGC数据标注产业全景报告》数据标注行业代表机构TOP20

量子位智库《中国AIGC数据标注产业全景报告》中指出,数据标注处于重新洗牌时期,更高质量、专业化的数据标注成为刚需。未来五年,国内AI基础数据服务将达到百亿规模,年复合增长率在27%左右。 基于数据基础设施建设、大模型/AI技术理…

areca backup备份工具安装与使用

由于FTP数据备份执行,需要人工操作执行,不满足业务需求,发现此工具结合ftp联动可以定时任务进行备份 获取地址 https://nchc.dl.sourceforge.net/project/areca/areca-stable/areca-7.5/areca-7.5-windows-jre64-setup.exe 前提条件 注意…

关闭RecyclerView惯性滚动,以及多个RecyclerView在嵌套滚动中的注意事项

前言: 当前RecyclerView 下拉到顶部 或者 上拉到底部时,虽然滚动列表停止了,但惯性任务并没有结束,一些特殊需求可能受到影响,需要手动停止。 1. RecyclerView源码 调用 rv.stopScroll() 停止; 2. Recycl…

数据库sql语句设置外键

当我们需要在数据库表之间建立关联关系时,可以使用外键(Foreign Key)来实现。在 SQL 中,外键可以用来保持数据的完整性,并帮助我们更有效地管理数据。以下是设置外键的步骤: 1.在创建表时,需要…

公益SRC实战|SQL注入漏洞攻略

目录 一、信息收集 二、实战演示 三、使用sqlmap进行验证 四、总结 一、信息收集 1.查找带有ID传参的网站(可以查找sql注入漏洞) inurl:asp idxx 2.查找网站后台(多数有登陆框,可以查找弱口令,暴力破解等漏洞&…

7个免费的优质图标素材网站,设计师必备!

对于交互设计师和产品经理来说,一套漂亮易用的图标可以算是提高效率的法宝,自己导出一套标准化的图标是一个巨大的工程。如何找到一个既美观又实用又能快速重用的图标?别慌,今天我们整理了7个价值高又好用的图标素材网站&#xff…

wx.canvasToTempFilePath生成图片保存到相册

微信小程序保存当前画布指定区域的内容导出生成指定大小的图片&#xff0c;记录一下 api&#xff1a;wx.canvasToTempFilePath 效果&#xff1a; 代码&#xff1a;wxml <canvas style"width: {{screenWidth}}px; height: {{canvasHeight}}px;" canvas-id"my…

芯科科技推出新的8位MCU系列产品,扩展其强大的MCU平台

新的BB5系列为简单应用提供更多开发选择 中国&#xff0c;北京 - 2023年11月14日 – 致力于以安全、智能无线连接技术&#xff0c;建立更互联世界的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#xff1a;SLAB&#xff09;&#xff0c;今日宣布…

浅析SVPWM调制技术

目录 收起 目录 目录 一、SVPWM基本原理 1.从三相电机运行原理到SVPWM调制技术 2.SVPWM调制的实现方法 3.合成参考电压矢量的方法 &#xff08;abc->αβ坐标变换&#xff09; 4.基本电压矢量时间的分配 5.基本电压矢量顺序的分配 6.扇区判断 二、仿真验证 1.操…