【Git】说说Git中开发测试的使用Git分支Git标签的使用场景

一、环境介绍

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

二、Git常用应用场景

实际应用场景中,开发测试的Git使用主要包括以下方面:

  1. 推送本地代码片段到远程仓库:开发者可以在本地进行代码开发和测试,然后通过Git提交到远程仓库,以便其他人可以查看和共享代码。
  2. Git的版本回退:如果当前分支的代码出现问题,可以通过查看Git日志找到之前的正确版本,并使用git reset命令回退到该版本。
  3. Git的分支切换:开发者可以在不同的分支上开发不同的功能或修复不同的bug,然后在测试完成后将分支合并到主分支上。
  4. Git的标签应用:在发布软件时,可以为当前的版本创建一个标签,以便后续查找和跟踪。

三、Git分支

关于分支,Git支持创建切换合并分支。创建分支使用git branch命令,切换分支使用git checkout命令,合并分支使用git merge命令。分支可以用于开发新功能或修复bug,同时不会影响主分支的稳定性。

1、分支在实际中有什么用?

  1. 多人协作开发:在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发。
  2. 功能开发:由于程序员不能直接在主分支上进行功能的开发,所以就有了功能分支的概念。功能分支可以用来管理和跟踪代码的版本,作为代码库的里程碑,标记代码库在特定时间点的版本。这对于部署、发行和回滚代码非常有用,因为它可以确保线上环境中始终使用相同版本的代码。
  3. 持续集成/持续部署:在持续集成或持续部署中,通常会使用分支来隔离不同版本的代码。主分支通常会保持稳定,而其他分支则用于开发和测试新功能或修复bug。这样可以确保主分支的稳定性,同时允许其他分支进行频繁的修改和测试。
  4. 版本控制:分支是版本控制的一个重要组成部分。通过使用分支,可以方便地进行代码审查和集成。分支还可以用于管理不同开发和协作环境下代码的版本,以便更好地跟踪和管理代码的变化。

2、Git的分支的常用命令

  1. git branch 分支名称: 创建新的分支。
  2. git checkout -b 分支名称: 创建新的分支并切换到对应分支。
  3. git checkout 分支名称: 切换到对应的分支。
  4. git merge 分支名称: 在当前分支合并指定分支。
  5. git cherry-pick 版本号: 合并分支上的某次提交。
  6. git branch -d 分支名: 删除远程分支。
  7. git fetch origin 分支名:<分支名>: 克隆远程的分支到本地的分支。
  8. git branch :查看所有分支

而我们常常使用的分别有创建(git branch 分支名称)、删除(git branch -d
分支名)、查看(git branch)。

3、Git分支使用场景

3.1、本地分支

创建一个仓库,里面创建几个新的分支并切换。

里面再新建几个文件用来测试我们想要的效果。

利用GUI的图形界面添加两个文件

可以看到我们选择的两个文件

我们用dev的分支进行提交后,切换我们的测试分支test可以看到我们的文件夹里面只剩下未提交的。

我们在其他分支是看不到由dev提交的问价,我想要看到我们就需要使用命令:git merge 分支名称合并分支。

如果我们的test里面有个(文件1)模块不通过,我们把它在文件夹里面删除,再进行提交。

我们切换到master分支,再合并已经已经通过的模块。

3.2、远程分支

推送我们在本地弄好的分支。

git push origin 分支名:推送分支到git

切换我们的开发分支,可以看到我们的所有文件都在这里,我们在使用命令进行推送。

我们继续把test的分支也进行推送。

四、Git标签

1、Git标签的实际用处

        标签是用于标记Git历史版本的一种方式。通过git tag命令可以创建标签,标签名通常采用“v版本号”的形式,例如v1.0。标签可以用于标记软件的发布版本,方便后续的版本管理和跟踪。

        Git标签是一种方便的版本标记方式,可以用于记录软件的发布版本、里程碑、分支隔离的版本以及持续集成/持续部署等场景。

        Git标签的应用场景主要是用于标记特定的版本和发布信息。以下是Git标签的一些常见应用场景:

  1. 标记软件的发布版本:在软件发布时,可以使用Git标签来标记发布的版本,以便后续跟踪和查找。标签名通常采用“v版本号”的形式,例如“v1.0”。
  2. 记录代码库的里程碑:Git标签可以用来记录代码库的重要里程碑,例如功能发布、修复某个bug等。这样可以方便地回溯到特定的代码库状态,并查看相关的更改历史。
  3. 分支隔离的版本:在进行多人协作开发时,为了防止互相干扰,可以使用Git标签来标记不同分支的版本。这样可以方便地查找和合并不同分支的代码。
  4. 持续集成/持续部署:在持续集成或持续部署中,可以使用Git标签来标记不同版本的代码,以便进行自动化构建和部署。这样可以确保不同环境下的代码版本的一致性。

2、常用命令

  1. git tag <xxx>: 用于新建一个标签,默认为HEAD,也可以指定一个commit id。
  2. git tag -a <xxx> -m "......": 指定标签信息。
  3. git tag: 查看所有标签。
  4. git push origin <xxx>: 推送一个本地标签。
  5. git push origin --tags: 推送全部未推送过的本地标签。
  6. git tag -d <xxx>: 删除一个本地标签。
  7. git push origin :refs/tags/<xxx>: 删除一个远程标签。

3、使用场景

使用的方法基本和分支是错不多的。

我们可以看到我们没有标签的。

我们进入对应的分支创建一个新的标签,并且推送。

我们把多个分支进行推送。

【注意】我们的辨别方式是后面的后缀,在同一个版本不同的环境下我们用后缀进行辨别。

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

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

相关文章

tsmc12 nm boundary cell注意事项

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 往期文章导读: boundary cell添加失败问题整理 注意N/P的区别 针对上下两边的boundary cell,有N/P类型的区别,看版图衬底形状上下是不对称的,而且P

Mysql中的索引与事务和B树的知识补充

索引与事务和B树的知识补充 一.索引1.概念2.作用3.使用场景4.使用 二.事务1.为什么使用事务2.事务的概念3.使用3.1脏读问题3.2不可重复读3.3 幻读问题3.4解决3.5 使用代码 三.B树的知识补充1.B树2.B树 一.索引 1.概念 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记…

centos7下载python3离线安装包

下载离线安装工具 yum install yum-utils -y下载python3离线安装包 yumdownloader --destdir/root/python3 --resolve python3将python3下面的离线安装文件拷贝到其他服务器上就可以安装 离线安装 先进入到离线程序rpm文件存储路径 # 离线安装 rpm -Uvh --force --nodep…

STM32F103C8T6硬件spi读取ADS1118

硬件SPI读取ADS1118 文章目录 硬件SPI读取ADS1118前言一、ADS1118技术手册二、SPI的配置1.spi.c和.h的配置2.ads1118.c3.ads1118.h 总结 前言 现在要用到SPI去读取数据&#xff0c;读取的芯片是ADX的一款&#xff0c;但是和ADS1118是一模一样的 分享一下读取的过程 一、ADS11…

【Android 】android13 新权限获取 读写文件权限

android13 新权限获取 参考&#xff1a;Android 13(API 33)读写SD卡权限的调整适配 - Mr,Han - 博客园 android在 获取文件读写权限&#xff08;尤其是音视频、图片等等资源&#xff09;的权限获取逻辑更换了。 必须申请如下权限&#xff1a; public static final String READ…

SpringCloudalibaba

一、分布式和微服务 分布式系统和服务是现代软件开发中的两个重要概念。它们为复杂的应用程序提供了模块化和可扩展性&#xff0c;使其能够在多台机器上运行&#xff0c;并为大量用户提供服务。 分布式系统 定义: 分布式系统是由多个独立组件组成的系统&#xff0c;这些组件…

cuda编程

参考资料 https://nyu-cds.github.io/python-gpu/02-cuda/ https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/ thread执行过程&#xff1a; https://docs.nvidia.com/cuda/cuda-c-programming…

学c语言可以过CCT里的c++吗?

学习 C 语言可以为学习 C 奠定一些基础&#xff0c;但它们是不同的语言&#xff0c;有各自独特的特点和用途。最近很多小伙伴找我&#xff0c;说想要一些c语言的资料&#xff0c;然后我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「c语言资料…

用于部署汽车AI项目的全面自动化数据流程

如何创建、优化和扩展汽车 AI 的数据流程 想到汽车行业的人工智能 (AI) 时&#xff0c;脑海中可能会立即浮现未来的道路上遍布自动驾驶汽车的情景。虽然这一切尚未实现&#xff0c;但汽车行业已在 AI 方面取得诸多进步&#xff0c;不仅安全性提高&#xff0c;车内体验也得到改…

jenkins+centos7上传发布net6+gitlab

工作中实践了一下jenkins的操作&#xff0c;所以记录一下这次经验 首先安装好jenkins并注册自己的jenkins账号 因为我们的项目代码管理使用的是gitlab&#xff0c;在开始之前先在jenkins上安装gitlab的插件&#xff0c;安装之后应该是要重启jenkins的服务&#xff0c;后续jen…

OpenAI 上线新功能力捧 RAG,开发者真的不需要向量数据库了?

近期&#xff0c; OpenAI 的开发者大会迅速成为各大媒体及开发者的热议焦点&#xff0c;有人甚至发出疑问“向量数据库是不是失宠了&#xff1f;” 这并非空穴来风。的确&#xff0c;OpenAI 在现场频频放出大招&#xff0c;宣布推出 GPT-4 Turbo 模型、全新 Assistants API 和一…