Git之分支与版本

                                                    🎬 艳艳耶✌️:个人主页

                                                    🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》

                                                      ⛺️ 越努力 ,越幸运。
 

1.开发测试上线git的使用

1.1. 环境讲述

           当软件从开发到正式环境部署的过程中,不同环境的作用如下:

开发环境:用于开发人员进行软件开发、测试和调试。在这个环境中,开发人员可以快速地进行代码编写、功能测试和调试,同时也可以模拟真实环境中的情况进行开发。

测试环境:用于进行软件的功能测试和性能测试。在测试环境中,测试人员可以对软件的各项功能进行测试,包括单元测试、集成测试和系统测试,以及性能和稳定性测试。

集成环境:用于将不同模块或组件集成在一起进行测试。在这个环境中,开发人员可以确保不同模块之间的接口和交互正常,同时也可以进行一些集成测试,以验证整个系统的功能和稳定性。

灰度环境:用于部分用户或服务器进行新版本的有限范围测试。在灰度环境中,可以让一部分用户先体验新版本,以便及时发现和解决问题,降低全面发布带来的风险。

预生产环境:用于进行最终的测试和验证,通常会模拟正式环境的配置和数据。在这个环境中,可以进行最终的功能测试、性能测试和用户验收测试,以确保软件在正式环境中能够正常运行。

生产环境:最终部署和运行软件的环境,用于提供给最终用户使用。在生产环境中,软件需要保持高可用性、稳定性和安全性,以满足用户的需求。

1.2. 应用原因

在大型企业开发中使用这些环境是非常重要的 :

隔离开发和测试:在大型企业中,通常有多个开发团队同时进行软件开发,使用不同的开发环境可以隔离彼此的工作,避免相互干扰和冲突。同时,测试环境的使用可以确保开发人员和测试人员在不同的环境中进行工作,保持独立性和专注性。

确保质量:通过在不同环境中进行测试,可以更好地确保软件的质量。在集成环境中进行集成测试,可以验证不同模块之间的交互和接口;在预生产环境中进行最终测试,可以模拟真实环境中的情况,确保软件能够正常运行;而在灰度环境中进行有限范围的测试,可以降低新版本发布的风险。

 降低错误传播:通过使用不同的环境,可以在不同阶段发现和解决问题,避免错误在软件开发过程中的传播。比如,在开发环境中发现的问题可以及时修复,避免进入测试和生产环境。

 用户体验和反馈:通过在灰度环境中进行有限范围的测试,可以让一部分用户提前体验新版本,了解用户对新功能的反馈和需求,有助于优化软件的用户体验。

 风险管理:在预生产环境中进行最终测试和验证,可以降低软件在生产环境中出现问题的风险。同时,通过灰度环境的使用,可以降低新版本发布带来的风险,确保软件的稳定性和可靠性。

1.3. 分支标签的区别

在 Git 中,分支和标签都是用来标记代码历史的重要工具,它们之间有以下几点关系:

1. 分支和标签都是指向提交(commit)的指针。分支指向最新的提交,标签指向一个特定的提交。

2. 分支和标签都可以用来记录代码历史的不同版本。分支通常用于开发过程中的版本控制,标签通常用于发布版本时的标记。

3. 分支和标签的区别在于,分支可以移动,而标签不可以。移动分支意味着将当前工作目录的 HEAD 指向新的提交,这样就可以继续在新的提交上进行开发。标签则是一个静态的指针,指向一个特定的提交,不会随着代码的修改而移动。

4. 分支和标签的创建和删除都是非常容易的。使用 `git branch` 命令可以创建和删除分支,使用 `git tag` 命令可以创建和删除标签。

总之,分支和标签都是 Git 中非常重要的概念,它们可以帮助我们更好地管理代码历史,进行版本控制和发布管理。在实际开发中,我们需要根据具体的需求和场景来选择使用分支或标签。

2.git的分支的使用

2.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.2. 场景应用

创建一个私有的仓库

比如在开发中需要实现8个模块,这里的创建8个文件来进行模拟。

在本地工作区间中,右键打开命令窗口

输入命令创建开发环境 :  git branch dev  ( 比如这是创建一个开发环境 )

输入命令创建测试环境 :  git branch test( 比如这是创建一个测试环境 )

比如现在已经有4个模块做完成了,需要上传到测试环境中。

使用gui打开图形操作界面,右键点击Git GUI 。点击文件图标,要1到4的文件让git管理

 

之后,我们进入到测试环境中,在本地的文件夹中是看不到在测试环境中的文件的,

输入命令进入测试环境 :  git checkout test

输入以下命令,将开发环境中的模块和测试环境中的模块进行整合,整合之后在测试环境中可以看到所有的模块。

命令 :  git merge dev

 

测试完成后,我们进入到开发环境中,将开发环境作为一个分支上传到远程仓库中

命令 :  git checkout dev   ( 进入开发环境 )

命令 :  git push origin dev  ( 将开发环境作为一个分支上传到远程仓库中 )

3.git的标签

3.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>的标签删除
 

3.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.3. 应用场景

进入开发环境(dev),创建一个相对开发环境的标签,并且上传到自己的远程仓库

命令 :  git checkout dev  ( 进入开发环境 )

命令 :  git tag v1.0.0.20231114.alpha   ( 创建标签 )

命令 :  git push origin v1.0.0.20231114.alpha  ( 将标签上传到远程仓库 )

上传后,在远程仓库汇中就可以看到该标签,并且标识上传的开发环境的分支,进入生成环境(master),创建一个相对生成环境的标签,并且上传到自己的远程仓库。

命令 :  git checkout master  ( 进入生成环境 )

命令 :  git tag v2.0.0.20231114.r  ( 创建生成环境标签 )

命令 :  git push origin v2.0.0.20231114.r  ( 上传到远程仓库 )

如果上传到远程仓库的标签有误,需要删除。

我需要先将本地的标签进行删除,在将远程仓库的标签删除才可。

命令 : git tag -d v2.0.0.20231114.r   ( 将本地的标签删除 )

命令 : git push origin :refs/tags/v2.0.0.20231114.r  ( 将远程仓库标签删除 )

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker搭建etcd集群

最近用到etcd&#xff0c;就打算用docker搭建一套&#xff0c;学习整理了一下。记录在此&#xff0c;抛砖引玉。 文中的配置、代码见于https://gitee.com/bbjg001/darcy_common/tree/master/docker_compose_etcd 搭建一个单节点 docker run -d --name etcdx \-p 2379:2379 \…

matlab Silink PID 手动调参

&#xff08;业余&#xff09;PID即比例积分微分&#xff0c;它将给定值r(t)与实际输出值y(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合形成控制量&#xff0c;对被控对象进行控制。我们先用matlab Silink弄一个简易的PID例子&#xff1a; 中间三条就是比例&#xff0c;积…

Django中简单的增删改查

用户列表展示 建立列表 views.py def userlist(request):return render(request,userlist.html) urls.py urlpatterns [path(admin/, admin.site.urls),path(userlist/, views.userlist), ]templates----userlist.html <!DOCTYPE html> <html lang"en">…

大数据可视化数据大屏可视化模板【可视化项目案例-05】

🎉🎊🎉 你的技术旅程将在这里启航! 🚀🚀 本文选自专栏:可视化技术专栏100例 可视化技术专栏100例,包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不…

matlab直线一级倒立摆lqr控制

1、内容简介 略 16-可以交流、咨询、答疑 matlab直线一级倒立摆lqr控制 2、内容说明 倒立摆是一个开环不稳定的强非线性系统&#xff0c;其控制策略与杂技运动员顶杆平衡表演的技巧有异曲同工之处&#xff0c;目的在于使得摆杆处于临界稳定状态&#xff0c;是进行控制理论研…

MYSQL字符串函数详解和实战(字符串函数大全,内含示例)

MySQL提供了许多字符串函数&#xff0c;用于处理和操作字符串数据。以下是一些常用的MYSQL字符串函数。 建议收藏以备后续用到查阅参考。 目录 一、CONCAT 拼接字符串 二、CONCAT_WS 拼接字符串 三、SUBSTR 取子字符串 四、SUBSTRING 取子字符串 五、SUBSTRING_INDEX 取子…

Linux 程序开发流程 / 基本开发工具 / Vim / GCC工具链 / Make 工具 / Makefile 模板

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

文生图模型测评之HPS v2

文章目录 1. 简介2. HPD v22.1 相关数据集介绍2.2 HPD v2 的构建2.2.1 prompt collection2.2.2 image collection2.2.3 preference annotation3. Human Preference Score v23.1 构建模型3.2 实验结果4. 结论及局限性论文链接:Human Preference Score v2: A Solid Benchmark fo…

Java通过JNI技术调用C++动态链接库的helloword测试

JNI调用原理 原理就不细说了&#xff0c;其实就是写个库给Java调&#xff0c;可以百度一下Java JNI&#xff0c;下面是HelloWorld代码测试 编写一个本地测试类 package com.my.study.cpp_jni;/*** 测试Java调用C库* <p>使用命令javac -h . NativeTest.java自动生成C头…

Technology Strategy Patterns 学习笔记8- Communicating the Strategy-Decks(ppt模板)

1 Ghost Deck/Blank Deck 1.1 It’s a special way of making an initial deck that has a certain purpose 1.2 you’re making sure you have figured out what all the important shots are before incurring the major expense of shooting them 1.3 需要从技术、战略、产…

每天一点python——day66

#每天一点Python——66 #字符串的分隔 #如图&#xff1a; #方法①split()从左开始分隔&#xff0c;默认空格为分割字符&#xff0c;返回值是一个列表 shello world jisuanji#首先创建一个字符串 list1s.split() print(list1)#输出结果是&#xff1a;[hello, world, jisuanji]注…

GoF之代理模式

2023.11.12 代理模式是GoF23种设计模式之一&#xff0c;其作用是&#xff1a;为其他对象提供一种代理以控制对这个对象的访问。在某些情况下&#xff0c;一个客户不想或者不能直接引用一个对象&#xff0c;此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以…

不同性别人群的股骨颈骨密度随年龄的变化趋势

增龄是发生骨质疏松的危险因素。因此&#xff0c;中老年人需要积极防范骨质疏松&#xff0c;以免发生骨折等不良事件。 为了探究不同性别人群的股骨颈骨密度随年龄的变化趋势&#xff0c;首先创建一个df&#xff0c;变量有id&#xff08;编号&#xff09;、age&#xff08;年龄…

Git之分支与版本->课程目标及知识点的应用场景,分支的场景应用,标签的场景应用

1.课程目标及知识点的应用场景 Git分支和标签的命名规范 分支 dev/test/pre/pro(即master) dev:开发环境--windows (自己的电脑) test:测试环境--windows/linux (公司专门的测试电脑 pre:灰度环境(非常大的公司非常重要的项目) pro:正式环境 灰度环境与正式环境的服务器配置…

开发者测试2023省赛--Square测试用例

测试结果 官方提交结果 EclEmma PITest 被测文件 [1/7] Square.java /*** This class implements the Square block cipher.** <P>* <b>References</b>** <P>* The Square algorithm was developed by <a href="mailto:Daemen.J@banksys.co…

Linux:安装MySQL5.7

1. 下载 下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/5.7.html#downloads 2. 解压 tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar 再移动并重命名一下 mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql3. 创建mysql用户组和用户并修改权限 g…

安装完 Ubuntu 22.04 LTS 后需要做的11件事情

如果你已经安装了 Ubuntu 22.04 LTS&#xff0c;接下来如何优化呢? 在本指南中&#xff0c;我们概述了一些基本步骤&#xff0c;当你熟悉 Ubuntu 22.04 LTS (Jammy Jellyfish) 时&#xff0c;你可以采取这些步骤。 (1) 更新本地存储库并升级系统 刷新本地软件包索引。因此&a…

【ArcGIS Pro二次开发】(75):ArcGIS Pro SDK二次开发中的常见问题及解决方法

ArcGIS Pro SDK二次开发路程也近一年时间了&#xff0c;这里总结一下平时遇到的一些问题和解决方法。有些问题没能解决&#xff0c;也记录下来&#xff0c;提醒自己不要忘记。 一、在VS2022中进行调试弹出错误 正常在VS2022中&#xff0c;如果要调试程序的话&#xff0c;直接按…

【C++】stack,queue和deque

stack的介绍 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特定类封装作为其底层的容器&#xff0c;并提供一组特定 的成…

ARM Linux 基础学习 / Linux Shell,必要命令全记录

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