【Git】版本控制工具——Git介绍及使用

目录

  • 版本控制
    • 版本控制系统的主要目标
    • 分类
    • 小结
  • 分布式版本控制系统——Git
    • Git特点
    • Git与SVN的区别
    • Git的工作机制
  • Git安装
  • Git 团队协作机制
    • 团队内协作
    • 跨团队协作
    • 远程仓库
      • 远程仓库的作用有以下几个方面
      • 远程仓库操作流程/团队协作流程
  • Git分支
    • 什么是分支
    • 分支的好处
  • Git的常用命令
  • Git如何解决版本冲突
  • IDEA使用Git(GitEE)

版本控制

  • 版本控制(Version Control)是一种管理文件和代码变更的系统。它能够追踪、记录和管理文件的修改历史,使开发人员能够在任何时间点回溯到特定的版本,并跟踪每个版本之间的差异。

版本控制系统的主要目标

  1. 记录文件的修改历史:版本控制系统可以追踪文件的每一次修改,并记录下修改的时间、作者和描述等信息。这样可以很方便地查看文件的历史变更,包括添加、删除和修改等操作。
  2. 回溯到特定版本:通过版本控制系统,开发人员可以在任何时间点回到特定的版本,以查看、比较或还原文件的状态。这对于修复bug、追溯问题或回退错误的修改非常有帮助。
  3. 并行开发与协同合作:版本控制系统允许多个开发人员同时修改同一个文件,而不会互相影响。开发人员可以基于同一个版本创建并行的分支,在分支上进行独立开发,并在需要时将修改合并到主分支中。
  4. 保护代码的完整性:版本控制系统通过对每个版本的文件进行存储和验证,可以保证代码的完整性和可靠性。即使出现文件损坏、删除或丢失等情况,也可以通过版本控制系统来恢复和还原文件。

分类

  • 常见的版本控制系统有 集中式版本控制系统(如SVN)分布式版本控制系统(如Git)
  • 它们都提供了类似的功能,但在分支管理、协同工作和性能等方面有所不同。
  • 选择适合自己的版本控制系统可以提高团队的生产效率,并确保代码的可维护性和可追溯性。

小结

  • 简单说就是用于管理多人协同开发项目的技术。
  • 没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。
  • 因此多人开发就必须要使用版本控制

分布式版本控制系统——Git

  • Git是一种分布式版本控制系统,用于追踪和管理文件和代码的变更。它最初由Linux的创始人Linus Torvalds开发,旨在解决Linux内核开发过程中的问题。

Git特点

  1. 分布式:git的每个开发人员都拥有完整的代码仓库,包括完整的历史记录和分支信息。这使得团队成员可以在本地进行独立的开发,不需要依赖于服务器的可用性。
  2. 高效:Git使用快照(Snapshot)而不是差异(Delta)来存储文件变化。这种存储方式非常高效,能够快速进行提交、分支、合并和查找操作。
  3. 强大的分支管理:Git的分支管理非常灵活和强大。开发人员可以轻松地创建、合并和删除分支,以支持并行开发和不同功能的实验。
  4. 完整的历史记录:Git记录了每次提交的详细信息,包括提交时间、作者和描述等。这使得开发人员可以方便地回溯到特定的版本,并追溯代码的变化历史。
  5. 安全性和完整性:Git采用哈希校验和数据完整性校验技术,确保存储在Git仓库中的每个文件和提交都是完整和可信的。
  6. 与其他工具的集成:Git可以与其他常用的开发工具(如IDE、代码托管平台和持续集成工具)进行集成,方便开发人员与团队合作和管理代码。

总的来说,Git是一种强大、高效和灵活的版本控制系统,被广泛应用于软件开发领域。无论是个人项目还是大型团队,使用Git可以提供更好的代码管理和协同工作体验。

Git与SVN的区别

SVN(Subversion)和Git都是版本控制系统,但它们在工作方式和特点上有一些显著的区别。

  1. 集中式 vs. 分布式:SVN是一个集中式版本控制系统,而Git是一个分布式版本控制系统。在SVN中,版本库存储在中央服务器上,开发者需要通过网络连接进行操作。而在Git中,每个开发者都有自己的本地版本库,可以在本地进行提交、分支管理等操作,不需要始终连接到中央服务器。

  2. 历史记录:SVN保存的是文件的差异变化,而Git保存的是文件的快照。这意味着在Git中,每次提交都是保存完整的文件快照,而SVN只保存了相对于前一个版本的差异。

  3. 分支管理:Git在分支管理方面更加灵活和强大。在Git中,创建和合并分支非常容易,开发者可以很方便地在本地创建、切换和合并分支,而且分支的创建和合并操作非常快速。而在SVN中,分支管理相对较为复杂,需要通过拷贝项目的目录来创建分支。

  4. 性能:由于Git是分布式的,大部分操作都在本地进行,因此在大型项目、多人协作和网络较差的情况下,Git通常比SVN更快速和高效。

  5. 历史记录的可见性:在SVN中,每个人都可以看到整个仓库的历史记录。而在Git中,每个开发者只能看到自己本地仓库的历史记录,这增强了代码的隔离性和安全性。

总的来说,Git在分支管理、性能和离线工作方面有优势,适合大型项目和分布式团队协作。而SVN更适合小型项目和集中式开发环境。选择使用哪种版本控制系统应根据具体的项目需求和团队情况来决定。

Git的工作机制

下面是一幅图解释Git的工作机制:

                    +-------------------+
                    |    Working Tree   |
                    +-------------------+
                              |
                              | git add
                              V
                    +-------------------+
                    |    Staging Area   |
                    +-------------------+
                              |
                              | git commit
                              V
                    +-------------------+
                    |    Repository     |
                    +-------------------+

  1. Working Tree(工作树):工作树是我们进行实际代码编辑和修改的地方。它包含了我们项目的实际文件。

  2. Staging Area(暂存区):在我们对工作树做出修改后,我们需要将这些修改添加到暂存区。暂存区类似于一个缓冲区,可以用来存放需要提交到版本库的文件。

  3. Repository(版本库):版本库是Git的核心部分,它存储了项目的所有历史记录。每次我们执行git commit命令时,暂存区的文件将会被永久保存到版本库中。

这个工作流程可以用以下步骤来概括:

  1. 在工作树(Working Tree)中进行文件的编辑和修改。
  2. 使用git add命令将修改后的文件添加到暂存区(Staging Area)。
  3. 使用git commit命令将暂存区的文件提交到版本库(Repository)。

在这里插入图片描述

这个工作机制的优势在于,我们可以根据需要选择性地将文件添加到暂存区,并随时撤销或修改这些变更。同时,Git还支持分支管理和合并,使得团队协作更加便捷。

Git安装

很抱歉,作为纯文本模型,我无法提供图文结合的教程。但是您可以按照以下步骤在Windows系统上安装Git:

  1. 访问Git官方网站(https://git-scm.com),在主页上找到并点击 “Download” 按钮。
    在这里插入图片描述

  2. 下载Git安装程序。根据您的操作系统选择适用的安装程序(32位或64位)。如果您不确定自己的系统位数,可以在Windows的 “控制面板” 中查看 “系统和安全” -> “系统”。
    在这里插入图片描述

  3. 双击下载的Git安装程序以启动安装向导。
    在这里插入图片描述

  4. 选择Use Git from Bash only即可
    在这里插入图片描述

  5. 后面的就是下一步下一步就行了

  6. 安装好后,右键桌面,会出现以下两个选项
    在这里插入图片描述

Git 团队协作机制

团队内协作

在这里插入图片描述

跨团队协作

在这里插入图片描述

远程仓库

Git的远程仓库是指存储在远程服务器上的Git仓库副本。它可以是在云端的代码托管服务(如GitLab、GitHub、Bitbucket)或者自建的Git服务器。

远程仓库的作用有以下几个方面

  1. 代码备份和共享:
    远程仓库是将本地代码备份到云端或者其他服务器上的重要手段。它可以确保即使本地机器出现故障或丢失,代码仍然可以恢复。同时,远程仓库也方便了团队成员之间的代码共享和协作。

  2. 分布式协作:
    Git的远程仓库使得多个团队成员可以在不同的地方同时访问和修改同一份代码。每个成员可以将自己的修改推送到远程仓库,并从仓库中拉取其他成员的修改。这样,团队成员可以通过远程仓库实现分布式协作开发,而无需直接和其他成员进行交互。

  3. 版本控制和版本管理:
    远程仓库是作为代码版本的存储和管理中心。它可以追踪和保存代码的历史记录,包括所有提交、分支和标签等。通过远程仓库,团队成员可以随时查看和恢复之前的代码状态,管理分支和合并请求,确保代码的稳定性和可追溯性。

  4. 自动化部署和持续集成:
    远程仓库与持续集成工具(如Jenkins、Travis CI)集成,可以实现自动化的代码构建、测试和部署。通过在远程仓库中配置相关的触发器,当代码发生变化时,持续集成工具会自动执行相应的动作,提高开发效率和代码质量。

总之,Git的远程仓库在团队协作和版本控制中扮演着重要的角色,它提供了代码备份、共享、分布式协作、版本管理和自动化部署等功能,促进了团队成员之间的合作和协作。

远程仓库操作流程/团队协作流程

  1. 创建远程仓库:
    团队协作的第一步是创建一个共享的远程仓库,可以使用 GitLab、GitHub、Bitbucket、GitEE 等服务提供商以及自建 Git 服务器。

  2. 克隆远程仓库:
    所有团队成员将远程仓库克隆到本地机器上,使用以下命令:git clone <remote-url>

  3. 创建分支:
    每个团队成员在本地创建自己的分支进行开发,使用以下命令: git checkout -b <branch-name>

  4. 进行开发:
    在本地分支上进行代码的修改、添加和删除。可以使用以下命令来管理本地代码:

    • git add <file>:将文件添加到暂存区
    • git commit -m "commit message":将暂存区的改动提交到当前分支
    • git push -u origin <branch-name>:将本地分支推送到远程仓库
  5. 分支合并:
    当一个开发任务完成后,团队成员可以将自己的分支合并到主分支(master)或其他需要合并的分支。通常使用以下命令:

    • git checkout master
    • git pull origin master
    • git merge <branch-name>
    • git push origin master
  6. 解决冲突:
    当多个开发者的分支存在冲突时,需要解决冲突后再进行合并。详细的冲突解决步骤在前面的回答中有提到。

  7. 代码审查:
    团队成员可以通过代码审查工具(如GitLab、GitHub的Pull Request功能)来进行代码的审查和讨论。这样可以确保代码质量和团队共识。

  8. 持续集成和部署:
    Git 可以与持续集成工具(如Jenkins、Travis CI)集成,自动构建和部署代码。这样可以减少手动步骤和减轻团队成员的工作量。

  9. 分支管理:
    团队可以根据需要创建多个分支来管理不同的开发任务或特性。可以使用以下命令来管理分支:

    • git branch <branch-name>:创建分支
    • git checkout <branch-name>:切换到指定分支
    • git branch -d <branch-name>:删除分支

以上是 Git 团队协作的基本步骤和常用命令,通过合理的团队协作机制,团队成员可以高效地进行协作开发,并保证代码的安全和稳定。

Git分支

在这里插入图片描述

什么是分支

  • 在版本控制过程中, 同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。
  • 使用分支意味着程序员可以把自己的工作从开发主线上分离开来, 开发自己分支的时 候, 不会影响主线分支的运行。
  • 对于初学者而言, 分支可以简单理解为副本, 一个分支就是 一个单独的副本。(分支底层其实也是指针的引用)

分支的好处

  • 同时并行推进多个功能开发,提高开发效率。
  • 各个分支在开发过程中, 如果某一个分支开发失败, 不会对其他分支有任何影响。失败 的分支删除重新开始即可。

Git的常用命令

Git是一个功能强大的版本控制工具,具有许多常用的命令。以下是一些常用的Git命令:

  1. 初始化仓库:

    • git init:在当前目录创建一个新的Git仓库。
  2. 添加和提交文件:

    • git add <file>:将文件添加到暂存区。
    • git commit -m "message":提交暂存区的文件并添加说明信息。
  3. 分支操作:

    • git branch:列出所有本地分支。
    • git branch <branch-name>:创建一个新的分支。
    • git checkout <branch-name>:切换到指定分支。
    • git merge <branch-name>:合并指定分支到当前分支。
  4. 远程仓库:

    • git remote add <remote-name> <remote-url>:添加一个远程仓库。
    • git clone <remote-url>:克隆远程仓库到本地。
  5. 查看和提交修改:

    • git status:查看当前仓库的文件状态。
    • git diff:查看文件的具体修改内容。
    • git commit -a:提交所有已经跟踪过的修改。
  6. 撤销和回退:

    • git reset <file>:取消暂存区的文件修改。
    • git checkout -- <file>:撤销对文件的修改。
    • git revert <commit>:回退到指定的提交。
  7. 查看历史记录:

    • git log:查看提交历史记录。
    • git log --graph:以图形化形式展示提交历史。
  8. 远程操作:

    • git push <remote> <branch>:将本地分支推送到远程仓库。
    • git pull <remote> <branch>:从远程仓库拉取最新代码并合并到当前分支。
  9. 设置用户签名:

  • git config --global user.name xxx:设置用户签名
  • git config --global user.email xxx:设置用户签名
  1. 版本穿梭
  • git reset --hard 版本号(查看历史记录时候给的版本号)

以上只是一些常用的Git命令,Git的功能非常丰富,还有更多命令可以用于特定的应用场景。您可以通过在命令行中输入 git --help来查看完整的Git命令列表以及它们的详细用法和说明。

Git如何解决版本冲突

在多人协作的项目中,可能会出现不同人对同一文件进行了不同的修改,导致版本冲突。Git提供了一些方法来解决版本冲突:

  1. 查看冲突:
    当发生版本冲突时,可以使用以下命令查看冲突的文件:git status

  2. 解决冲突:
    找到冲突的文件后,可以使用文本编辑器打开文件,解决冲突的部分会被标记出来。根据需要进行修改、删除或合并,解决冲突。

  3. 添加解决后的文件:
    在解决完冲突后,需要将修改后的文件添加到暂存区:git add <resolved-file>

  4. 提交修改:
    解决冲突后,将修改提交到版本库:git commit -m "Resolve conflict"

  5. 合并分支:
    如果冲突发生在分支合并时,可以使用以下命令进行分支合并:git merge <branch-name>

  6. 使用工具:
    Git也提供了一些可视化工具来解决版本冲突,如Git GUI和GitKraken等工具可以更直观地进行冲突解决。

解决版本冲突需要谨慎地进行合并和修改,确保最终的代码能够保持正确和完整。在解决冲突之前,可以使用 git diff 命令查看冲突的具体修改。另外,在多人协作中,良好的沟通和协调也是解决版本冲突的关键。

IDEA使用Git(GitEE)

在使用Gitee与IDEA进行开发的完整流程可以按照以下步骤进行:

  1. 注册Gitee账号:

    • 首先,在Gitee官网上注册一个账号(如果还没有注册过)。
  2. 创建Gitee远程仓库:

    • 登录Gitee账号后,创建一个新的远程仓库,用于存储项目代码。
    • 可以选择公开或私有仓库,并设置相应的仓库名称、描述等信息。
  3. 在IDEA中配置Git插件:

    • 在IDEA中安装Git插件(如果还没有安装),然后在设置中配置Git的用户名和邮箱地址,这些信息将用于代码提交时的身份验证。
      在这里插入图片描述

    在这里插入图片描述

  4. 克隆远程仓库到本地:

    • 新建工程,然后选择下面这这个project from Version Control
    • 选择Git并输入Gitee远程仓库的URL,然后克隆仓库到本地。
      在这里插入图片描述
  5. 在IDEA中进行开发:

    • 在本地克隆的工作目录中,使用IDEA进行代码开发。
    • 这包括编写、修改、调试和测试代码等操作。
  6. 提交代码到本地仓库:

    • 在IDEA的Git工具栏中,选择要提交的文件或目录,然后点击“Commit”按钮。
    • 在弹出的Commit窗口中,输入提交信息描述本次提交的内容,并点击“Commit”按钮提交代码到本地仓库。
  7. 推送代码到Gitee远程仓库:

    • 在IDEA的Git工具栏中,点击“Push”按钮,将本地仓库的代码推送到Gitee远程仓库。
    • 确认推送的分支和远程URL,并点击“Push”按钮完成推送。
      在这里插入图片描述
      这三个图标分别是update、commit、push
  8. 协作开发与合并:

    • 如果是多人协作开发的情况下,其他成员可以克隆远程仓库到本地,在本地进行开发并提交到本地仓库,然后推送到远程仓库。
    • 当有分支上的代码需要合并时,可以使用Pull Request功能在Gitee上创建合并请求,其他成员可以进行审核并合并代码。

以上是使用Gitee进行开发的基本流程,在实际开发中会根据具体项目的需求进行调整和扩展。

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

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

相关文章

JDBC使用QreryRunner简化SQL查询注意事项

QreryRunner是Dbutils的核心类之一&#xff0c;它显著的简化了SQL查询&#xff0c;并与ResultSetHandler协同工作将使编码量大为减少。 注意事项 1. 使用QreryRunner必须保证实体类的变量名&#xff0c;和sql语句中要查找的字段名必须相同&#xff0c;否则查询 不到数据,会出…

K-means聚类算法详细介绍

目录 &#x1f349;简介 &#x1f348;K-means聚类模型详解 &#x1f348;K-means聚类的基本原理 &#x1f348;K-means聚类的算法步骤 &#x1f348;K-means聚类的优缺点 &#x1f34d;优点 &#x1f34d;缺点 &#x1f348;K-means聚类的应用场景 &#x1f348;K-mea…

公共代理IP和独享代理IP之间的区别?

公共代理IP和独享代理IP在网络应用中扮演着不同的角色&#xff0c;它们之间的区别主要体现在使用方式、性能、安全性以及隐私保护等方面。以下是对这两种代理IP的详细对比和分析。 第一点就是使用的方式以及成本上的不同&#xff0c;公共代理IP&#xff0c;顾名思义&#xff0…

MySQL中, 自增主键和UUID作为主键有什么区别?

首先我们来看看, 存储自增主键和uuid的数据类型 我们知道, mysql中作为主键的通常是int类型的数据, 这个 数据从第一条记录开始, 从1开始主键往后递增, 例如我有100条数据, 那么根据主键排序后, 里面的记录从上往下一次就是1, 2, 3 ... 100, 但是UUID就不一样了, UUID是根据特殊…

基于Zookeeper的分布式锁

分布式锁的介绍 在Java的多线程部分&#xff0c;我们知道如果在单个jvm进程中&#xff0c;多个线程之间同时访问一个资源&#xff0c;此时会有多线程的安全问题。为了解决这个线程安全的问题&#xff0c;我们可以使⽤“锁”来实现。但是&#xff0c;多个jvm进程之间如果同时访问…

Topk问题以及二叉树的三种层序遍历和基本操作

一、Topk问题 1、问题描述 TOP-K问题&#xff1a;即求数据结合中前K个最大的元素或者最小的元素&#xff0c;一般情况下数据量都比较大。 比如&#xff1a;专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。 2、思路 对于Top-K问题&#xff0c;能想到的最简单直接的…

Go微服务: Nacos的搭建和基础API的使用

Nacos 概述 文档&#xff1a;https://nacos.io/docs/latest/what-is-nacos/搭建&#xff1a;https://nacos.io/docs/latest/quickstart/quick-start-docker/有很多种搭建方式&#xff0c;我们这里使用 docker 来搭建 Nacos 的搭建 这里&#xff0c;我们选择单机模式&#xf…

重学java 46.集合 ① Collection集合

事常与人违&#xff0c;事总在人为 —— 24.5.26 集合 知识导航 1.集合的特点以及作用 2.使用collection接口中的方法 3.使用迭代器迭代集合 4.ArrayList以及LinkedList的使用 5.使用增强for遍历集合 一、单列集合框架的介绍 1.长度可变的容器&#xff1a;集合 2.集合的特点 a.…

App推广新境界:Xinstall助你轻松突破运营痛点,实现用户快速增长!

在移动互联网时代&#xff0c;App已经成为企业营销不可或缺的一部分。然而&#xff0c;如何有效地推广App&#xff0c;吸引并留住用户&#xff0c;成为了众多企业面临的难题。今天&#xff0c;我们将为您揭秘一款神奇的App推广工具——Xinstall&#xff0c;它将助您轻松突破运营…

音视频开发8 音视频中SDL的使用,SDL 在windows上环境搭建,SDL 使用 以及 常用 API说明,show YUV and play PCM

1.SDL简介 SDL&#xff08;Simple DirectMedia Layer&#xff09;&#xff0c;是一个跨平台的C语言多媒体开发库。 支持Windows、Mac OS X、Linux、iOS、Android 提供对音频、键盘、鼠标、游戏操纵杆、图形硬件的底层访问 很多的视频播放软件、模拟器、受欢迎的游戏都在使用…

我的前端封装之路

最近有粉丝提问了我一个面试中遇到的问题&#xff0c;他说面试的时候&#xff0c;面试官问我&#xff1a;你在以前的项目中封装过组件吗&#xff1f;或者做过npm公共库吗&#xff1f;遇到过什么问题吗&#xff1f;当时自己突然觉得好像没什么可回答的啊&#xff0c;但面试结束想…

【Torch学习笔记】

作者&#xff1a;zjk 和 的区别是逐元素相乘&#xff0c;是矩阵相乘 cat stack 的区别 cat stack 是用于沿新维度将多个张量堆叠在一起的函数。它要求所有输入张量具有相同的形状&#xff0c;并在指定的新维度上进行堆叠。

LabVIEW直方图应用解析

概述 在LabVIEW中&#xff0c;直方图是一种重要的工具&#xff0c;用于分析和展示数据的分布情况。它通过将数据分成若干区间并绘制对应频数&#xff0c;可以帮助用户了解数据的集中趋势、离散程度和分布形态。本文将详细介绍LabVIEW中直方图的使用方法、适用场合、实际意义及…

解决使用ServletUtil.write方法下载接口文件中文乱码问题

文章目录 前言代码片段如下&#xff1a;一、问题分析二、解决办法总结 前言 在开发过程中遇到的一个小问题&#xff0c;实现一个下载模板的接口&#xff0c;我选择了使用hutool包的ServletUtil.write方法去进行文件下载&#xff0c;但调试过程中下载出来的文件名是乱码的&#…

DEM、DSM和DTM之间的区别及5米高程数据获取

在日常的学习工作中我们经常会遇到DEM、DSM和DTM等术语&#xff0c;它们的含义类似&#xff0c;甚至相互替换。那么它们之间有什么区别&#xff1f;这里我们对这些术语进行介绍。 DEM&#xff08;数字高程模型&#xff0c;Digital Elevation Model&#xff09;&#xff1a; 定义…

JavaFX安装与使用

前言 最近学习了javafx,开始时在配置环境和导包时遇到了一些麻烦,关于网上很多方法都尝试过了,现在问题都解决了,和大家分享一下我是怎么实现javafx的配置,希望大家可以通过这个方法实现自己的环境配置! &#x1f648;个人主页: 心.c &#x1f525;文章专题:javafx &#x1f49…

5月26号总结

目录 刷题记录(Codeforces Round 947 &#xff08;Div. 1 Div. 2&#xff09;前三题) 1.A. Bazoka and Mochas Array 2.B. 378QAQ and Mochas Array 3.C. Chamo and Mochas Array 刷题记录(Codeforces Round 947 &#xff08;Div. 1 Div. 2&#xff09;前三题) 1.A. Bazok…

【开源可视化报表设计器】借力实现高效率流程化办公!

进行数字化转型、实现流程化办公&#xff0c;这些应该是目前很多企业都想要实现的目标吧。那么&#xff0c;利用什么样的软件平台可以实现&#xff1f;低代码技术平台拥有可视化界面、灵活操作、好维护等众多优势特点&#xff0c;可以借助低代码技术平台、开源可视化报表设计器…

H5扫描二维码相关实现

H5 Web网页实现扫一扫识别解析二维码&#xff0c;就现在方法的npm包就能实现&#xff0c;在这个过程中使用过html5-qrcode 和 vue3-qr-reader。 1、html5-qrcode的使用 感觉html5-qrcode有点小坑&#xff0c;在使用的时候识别不成功还总是进入到错误回调中出现类似NotFoundExc…

用Prometheus全面监控MySQL服务:一篇文章搞定

简介 在现代应用中&#xff0c;MySQL数据库的性能和稳定性对业务至关重要。有效的监控可以帮助预防问题并优化性能。Prometheus作为一款强大的开源监控系统&#xff0c;结合Grafana的可视化能力&#xff0c;可以提供全面的MySQL监控方案。 设置Prometheus 安装Prometheus 使…