【Git】的分支与版本

news/2024/7/7 22:20:20

前言

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://lihuaxi.xjx100.cn/news/1781503.html

相关文章

Leetcode100120. 找出强数对的最大异或值 I

Every day a Leetcode 题目来源:100120. 找出强数对的最大异或值 I 解法1:模拟 枚举 2 遍数组 nums 的元素,更新最大异或值。 代码: /** lc appleetcode.cn id100120 langcpp** [100120] 找出强数对的最大异或值 I*/// lc c…

高二英语上

unit 1 1.yarn三种意思 1.码; 2.庭院,天井; 3.花园;down**down 在这里是介词,也可以作副词,与 down 相对的是 up。请比较下列两句: 1.Look! Hes driving down the street . 2.Look! Hes driving up the street .这两…

Java Web——TomcatWeb服务器

目录 1. 服务器概述 1.1. 服务器硬件 1.2. 服务器软件 2. Web服务器 2.1. Tomcat服务器 2.2. 简单的Web服务器使用 1. 服务器概述 服务器指的是网络环境下为客户机提供某种服务的专用计算机,服务器安装有网络操作系统和各种服务器的应用系统服务器的具有高速…

systemd-timesyncd

介绍 systemd-timesyncd 是一个用于跨网络同步系统时钟的守护服务。它实现了一个 SNTP 客户端。与NTP的复杂实现相比,这个服务简单的多,它只专注于从远程服务器查询然后同步到本地时钟。除非你打算为客户端提供 NTP 服务器或者连接本地硬件时钟&#xff…

Leetcode—107.二叉树的层序遍历II【中等】

2023每日刷题(二十七) Leetcode—107.二叉树的层序遍历II 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullpt…

图象处理算法(介绍)

赛题中有一类问题与图形有关,即使与图形无关,论文中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用Matlab进行处理 图像处理是将数字图像传感器获得的图像进行数字处理、改进与分析的人工智能和计…

Java继承和多态(1)

🐵本主题将分为篇文章,本篇文章将主要对继承进行讲解 一、介绍继承 1.1 什么是继承 假如有两个类:A类和B类,A类在保持原有成员变量和方法的基础上可以使用B类的成员变量和方法,此时就称A类继承了B类,A类为…

1204. 错误票据

题目: 1204. 错误票据 - AcWing题库 思路: 将输入的数据存入数组,从小到大排序后遍历,若 (a[i] a[i - 1])res1 a[i]--->重号;若(a[i] - a[i - 1] > 2)res2 a[i] - 1--->断号。 难点:题目只告诉我们输入…