【通俗易懂】git原理、安装及连接gitlab,github
目录
一、GIT原理【这部分也挺简单,可以看看,如果没时间可以直接跳到第二部分】
SVN与Git的的区别
二、安装Git
2.1 获取Git安装程序
2.2 Git安装过程
三、Git连接Gitlab
3.1 gitlab准备工作
3.2 本地计算机准备工作及配置git
四、Git连接Github
一、GIT原理【这部分也挺简单,可以看看,如果没时间可以直接跳到第二部分】
Git 是一种分布式版本控制系统,用于管理软件项目的源代码。它是由 Linux 之父 Linus Torvalds 开发的,并已经成为了现代软件开发领域中最流行的版本控制系统之一。
使用 Git 可以追踪代码的历史修改记录,方便团队协作、代码共享和代码重构。Git 的基本工作流程如下:
- 在开始编写代码之前,首先需要创建一个 Git 仓库(repository),用于存储代码和版本历史记录。
- 在编写代码时,可以通过
git add
命令将更改的文件添加到 Git 的暂存区(staging area)中。 - 通过
git commit
命令将暂存区中的更改提交到 Git 仓库中,并生成一个新的版本号(commit hash)。 - 如果需要撤销某个提交,可以使用
git revert
命令来创建一个新的提交,该提交将会抵消先前的提交效果。 - 如果需要合并不同分支的代码,可以使用
git merge
命令进行合并。 - 如果需要查看代码的历史提交记录,可以使用
git log
命令来获取详细信息。 - 如果需要将代码推送到远程仓库,可以使用
git push
命令将本地代码推送到远程仓库。 - 如果需要从远程仓库中获取代码,可以使用
git pull
命令将远程代码拉取到本地。
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
SVN与Git的的区别
SVN和Git都是版本控制系统,但它们有以下区别:
- 分布式 vs 集中式:Git 是一种分布式版本控制系统,而 SVN 是一种集中式版本控制系统。在 Git 中,每个开发者都拥有本地代码库的完整副本,可以离线工作并在不同的工作流程之间自由转换。而在 SVN 中,所有开发者共享同一个中央代码库,并且需要有网络连接才能进行版本控制操作。
- 分支管理:Git 在分支管理方面比 SVN 更加强大和灵活。Git 的分支非常轻量级,创建和合并分支也很容易,因此可以轻松实现多人协作和并行开发。而在 SVN 中,分支比较重量级(即创建和合并分支需要花费相对更多的时间和资源),因此往往只用于重要的版本分支。
- 版本号:Git 使用 SHA-1 哈希值来标识每个提交,而 SVN 采用递增的数字版本号来标识每个提交。SHA-1 哈希值保证了每个提交的唯一性,而递增版本号则简化了版本控制过程。
- 整体性:由于 SVN 是一种集中式版本控制系统,因此所有数据都存储在中央代码库中。如果中央代码库损坏或丢失,可能会导致数据丢失或无法恢复。而 Git 是一种分布式版本控制系统,每个开发者都拥有完整的代码库副本,保证了代码的整体性和可靠性。
- 性能:Git 比 SVN 更快,特别是在处理大型仓库、分支合并以及比较代码差异时。Git 使用基于内容的哈希算法来检测文件是否修改,而 SVN 则需要检查文件的元数据(如时间戳和文件大小)来确定是否修改。
总之,虽然 SVN 和 Git 都是版本控制系统,但它们的设计和实现方式存在较大差异,开发人员应根据自身需求选择最适合的版本控制系统。
二、安装Git
2.1 获取Git安装程序
到Git官网下载,网站地址:https://git-scm.com/downloads,如下图
因为我们是用Windows系统上的浏览器访问的,Git官网自动之别到了我使用的操作系统,所以右侧直接显示下载使用Windows系统的最新版本(如果识别错误,可以在中间选择系统),点击即可下载。我下载的是 2.24.0 for Windows,文件名称是“Git-2.24.0.2-64-bit.exe”。下载到电脑上之后,鼠标双击这个文件即可进入安装过程。
2.2 Git安装过程
双击看到的第一个界面如下图:
01、使用许可声明
点击“Next”进入下图页面:
02、选择安装路径
在输入框内输入想要安装到的本机路径,也就是实际文件夹位置,或点击“Browse...”选择已经存在的文件夹,然后点击“Next”按钮继续,进入下图界面:
03、选择安装组件
上图红框内的选项是默认勾选的,建议不要动。绿色框1是决定是否在桌面创建快捷方式的。绿色框2是决定在所有控制台窗口中使用TrueType字体和是否每天检查Git是否有Windows更新的。这些根据自己需要选择。
点击“Next”按钮进入下图界面:
04、选择开始菜单页
这个界面是创建开始菜单中的名称,不需要修改,直接点“Next”按钮继续到下图的界面:
05、选择Git文件默认的编辑器
这个页面是在选择Git文件默认的编辑器,很少用到,所以默认Vim即可,直接点“Next”按钮继续到下图的界面:
06、调整您的PATH环境
这个界面是调整您的PATH环境。
第一种配置是“仅从Git Bash使用Git”。这是最安全的选择,因为您的PATH根本不会被修改。您只能使用 Git Bash 的 Git 命令行工具。但是这将不能通过第三方软件使用。
第二种配置是“从命令行以及第三方软件进行Git”。该选项被认为是安全的,因为它仅向PATH添加了一些最小的Git包装器,以避免使用可选的Unix工具造成环境混乱。
您将能够从Git Bash,命令提示符和Windows PowerShell以及在PATH中寻找Git的任何第三方软件中使用Git。这也是推荐的选项。
第三种配置是“从命令提示符使用Git和可选的Unix工具”。警告:这将覆盖Windows工具,如 “ find 和 sort ”。只有在了解其含义后才使用此选项。
我选择推荐的选项第二种配置,点击“Next”按钮继续到下图的界面:
07、选择HTTPS后端传输
这个界面是选择HTTPS后端传输。
第一个选项是“使用 OpenSSL 库”。服务器证书将使用ca-bundle.crt文件进行验证。这也是我们常用的选项。
第二个选项是“使用本地 Windows 安全通道库”。服务器证书将使用Windows证书存储验证。此选项还允许您使用公司的内部根CA证书,例如通过Active Directory Domain Services 。
我使用默认选项第一项,点击“Next”按钮继续到下图的界面:
08、配置行尾符号转换
这个界面是配置行尾符号转换。
第一个选项是“签出Windows风格,提交Unix风格的行尾”。签出文本文件时,Git会将LF转换为CRLF。提交文本文件时,CRLF将转换为LF。对于跨平台项目,这是Windows上的推荐设置(“ core.autocrlf”设置为“ true”)
第二个选项是“按原样签出,提交Unix样式的行尾”。签出文本文件时,Git不会执行任何转换。 提交文本文件时,CRLF将转换为LF。对于跨平台项目,这是Unix上的建议设置(“ core.autocrlf”设置为“ input”)
第三种选项是“按原样签出,按原样提交”。当签出或提交文本文件时,Git不会执行任何转换。不建议跨平台项目选择此选项(“ core.autocrlf”设置为“ false”)
我选择第一种选项,点击“Next”按钮继续到下图的界面:
09、配置终端模拟器以与Git Bash一起使用
这个界面是配置终端模拟器以与Git Bash一起使用。
第一个选项是“使用MinTTY(MSYS2的默认终端)”。Git Bash将使用MinTTY作为终端模拟器,该模拟器具有可调整大小的窗口,非矩形选择和Unicode字体。Windows控制台程序(例如交互式Python)必须通过“ winpty”启动才能在MinTTY中运行。
第二个选项是“使用Windows的默认控制台窗口”。Git将使用Windows的默认控制台窗口(“cmd.exe”),该窗口可以与Win32控制台程序(如交互式Python或node.js)一起使用,但默认的回滚非常有限,需要配置为使用unicode 字体以正确显示非ASCII字符,并且在Windows 10之前,其窗口不能自由调整大小,并且只允许矩形文本选择。
我选择默认的第一种选项,点击“Next”按钮继续到下图的界面:
10、配置配置额外的选项
这个界面是配置配置额外的选项。
第一个选项是“启用文件系统缓存”。文件系统数据将被批量读取并缓存在内存中用于某些操作(“core.fscache”设置为“true”)。 这提供了显著的性能提升。
第二个选项是“启用Git凭证管理器”。Windows的Git凭证管理器为Windows提供安全的Git凭证存储,最显着的是对Visual Studio Team Services和GitHub的多因素身份验证支持。 (需要.NET Framework v4.5.1或更高版本)。
第三个选项是“启用符号链接”。启用符号链接(需要SeCreateSymbolicLink权限)。请注意,现有存储库不受此设置的影响。
我勾选默认的第一、第二选项,点击“Next”按钮继续到下图的界面:
11、配置实验选项
这个界面是配置实验选项。
启用实验性的内置添加 -i / -p。(新!)使用实验性的内置交互式add(“ git add -i”或“ git add -p”)。这使其速度更快(尤其是启动!),但尚未被认为是可靠的。
默认不勾选,直接点击“Next”按钮继续到下图的安装进度界面:
12、安装进度指示
安装进度结束之后,会出现下图的完成Git安装向导界面:
13、安装完成
在这个界面,可以勾选是否启动启动Git Bash和是否查看发行说明,然后点“Finish”按钮退出安装界面。
14、启动测试
到此,Git的安装完成,可以在开始菜单中看到Git的三个启动图标(Git Bash、Git CMD(Deprecated)、Git GUI)。
Git Bash,是Git配套的一个控制台,点击打开如下图:
Git CMD(Deprecated),是通过CMD使用Git(不推荐使用),点击打开如下图:
Git GUI,是Git的可视化操作工具,点击打开如下图:
三、Git连接Gitlab
3.1 gitlab准备工作
1、在GitLab上创建一个账户:如果您还没有GitLab账户,请在GitLab官网(https://gitlab.com/users/sign_in)上创建一个账户。
2、创建一个新的Git仓库:登录到您的GitLab账户,然后在页面上创建一个新的Git仓库。请注意Git仓库的名称和位置,因为这些信息将用于配置本地Git。
3.2 本地计算机准备工作及配置git
1、在计算机上创建个文件夹(用于专门存/传到gitlab或github代码,例如GitCode),进入文件夹内,右键打开Git Bash终端,并输入以下命令以设置您的Git用户名和电子邮件地址(最好和gitlab用相同的用户名和电子邮件地址,这样方便记。例如我的电子邮件地址是xxx@qq.com)
git config --global user.name "BosserWang"
git config --global user.email "xxxxx@xxx.com"
(BosserWang是用户名,xxxxx@xxx.com是电子邮箱,我的是qq邮箱,大家根据自己的信息自行修改)
2、生成SSH密钥:输入以下命令以生成SSH密钥:
ssh-keygen -t rsa -C "xxxxx@xxx.com"
这里的地址和上面的电子邮箱地址是同一个地址。
然后一路回车即可。
3、添加SSH密钥到GitLab:使用以下命令将SSH密钥添加到GitLab:
cat ~/.ssh/id_rsa.pub
(~表示用户目录,比如我的windows就是C:\Users\Administrator.DESKTOP,并复制下面红色框内的内容)
4、打开gitlab,把ssh添加进去。
5、进入计算机上创建的文件夹(我的是GitCode),右键选择->Git Bash Here 通过git init
命令把这个目录变成Git可以管理的仓库(多了这么一个文件.git)
git init
6、克隆项目
git clone 项目地址
7、提交代码到Gitlab
把代码文件全部copy到刚刚克隆的项目文件夹中,右键选择->Git Bash Here 。
第一步,用命令git add
告诉Git,把文件添加到仓库:
git add 文件名 或者 git add .
(“git add“后加“.”则添加全部文件,也可以加"*.txt"表示添加全部需要提交的txt文件 )
执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
第二步,用命令git commit
告诉Git,把文件提交到仓库:
git commit -m "20231121"
简单解释一下git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
嫌麻烦不想输入-m "xxx"
行不行?确实有办法可以这么干,但是强烈不建议你这么干,因为输入说明对自己对别人阅读都很重要。实在不想输入说明的童鞋请自行Google,我不告诉你这个参数。
git commit
命令执行成功后会告诉你,1 file changed
:1个文件被改动(我们新添加的readme.txt文件);2 insertions
:插入了两行内容(readme.txt有两行内容)。
git commit -m "增加了一张地铁图"
为什么Git添加文件需要add
,commit
一共两步呢?因为commit
可以一次提交很多文件,所以你可以多次add
不同的文件。
最后输入以下命令,提交到gitlab
git push origin master 或者 git push
git push origin master的意思就是上传本地当前分支代码到master分支。git push是上传本地所有分支代码到远程对应的分支上。
若在执行上述操作的时候,如果报错:
On branch master
nothing to commit, working tree clean
To git@gitlab.com:<your_username>/<your_repository>.git! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@gitlab.com:<your_username>/<your_repository>.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
代表您本地的分支与远程分支的提交历史不一致,所以需要先将远程分支的更改合并到本地分支,然后再将本地更改推送到远程分支。
要解决这个问题,请按照以下步骤操作:
运行以下命令拉取远程分支的更改:
git pull origin master
这将合并远程分支的更改到您本地的分支。
如果在合并过程中出现冲突,请解决冲突并提交更改。
然后再次运行以下命令将更改推送到远程分支:
git push origin master
这样就能够成功地将更改推送到远程分支了。
如果以上还报错,如:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@gitlab.com:<your_username>/<your_repository>.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
这个错误提示表明,远程分支比您本地分支更新,因此在推送更改之前,您需要先将远程分支上的更改合并到本地分支中。
为了解决此问题,您可以执行以下操作:
运行以下命令来拉取远程分支的更改:
git pull --rebase origin master
这将从远程分支下载并合并最新的更改,并使您的本地分支保持最新状态。
如果在合并过程中出现冲突,请解决冲突并提交更改。
然后再次运行以下命令将更改推送到远程分支:
git push origin master
就可以解决问题了!
四、Git连接Github
连接github的操作和连接gitlab一摸一样。不再重述,如有问题,可以在评论区提问。
相关文章:

【通俗易懂】git原理、安装及连接gitlab,github
目录 一、GIT原理【这部分也挺简单,可以看看,如果没时间可以直接跳到第二部分】 SVN与Git的的区别 二、安装Git 2.1 获取Git安装程序 2.2 Git安装过程 三、Git连接Gitlab 3.1 gitlab准备工作 3.2 本地计算机准备工作及配置git 四、Git连接Github…...

TCP /UDP协议的 socket 调用的过程
在传输层有两个主流的协议 TCP 和 UDP,socket 程序设计也是主要操作这两个协议。这两个协议的区别是什么呢?通常的答案是下面这样的。 TCP 是面向连接的,UDP 是面向无连接的。TCP 提供可靠交付,无差错、不丢失、不重复、并且按序…...
外贸独立站外部优化:提升网站可见度与吸引力的策略
随着全球电子商务的快速发展,外贸独立站已经成为众多企业拓展海外市场、提升品牌影响力的关键工具。然而,要想在竞争激烈的外贸市场中脱颖而出,除了产品优质、服务周到外,还需要做好网站的外部优化工作。本文将详细探讨如何通过有…...

buildAdmin 后端控制器的代码分析
buildAdmin的代码生成,很像是 fastadmin 的生成模式,当我们利用数据库生成了一个控制器的时候,我们可以看到, 它的生成代码很简洁 <?phpnamespace app\admin\controller\askanswer;use app\common\controller\Backend;/*** 回…...

Python丨让简历脱颖而出的关键,居然是“它”!
进入疫情后时代,各行各业都在力争新的发展!财会行业亦是如此,浏览各大招聘网站,不难发现财会相关岗位的招聘要求越来越“卷”,那求职者如何才能让自己获得面试邀请呢? 答案就是:一份亮眼且具有…...
CMake中常见的预定义变量
文章目录 CMake常见的预定义变量CMake variables官方文档 CMake常见的预定义变量 在 CMake 中,有一些常见的预定义变量,它们提供了有关项目、目录结构和构建环境的信息。这些变量可用于设置路径、传递参数、以及进行其他与构建过程相关的操作。 以下是…...

.netcore 获取appsettings
我的开发环境是abpvnext net6.0 。 因为业务需要,从原来老项目net4.5工程里复制了一个报表导出的业务类到net6项目里面,但是他的获取appsettings的代码其实不用想都知道会报错。因为原来framwork时代获取appsettings的方法常见的是 System.Configura…...

额温枪方案,MS8551,MS8601;MS1112,MS1100
鉴于测温的传感器信号非常微弱,需要用高精度、低噪声的运算放大器和高精度、低功耗的ADC。 运算放大器可供选择:MS8551 or MS8601,具有低失调(1uV)、低噪(22nV√Hz )、封装小等优点,…...

数字图像处理基础-用通俗语言进行超详细的总结
目录 图像感知与获取 韦伯定理 马赫带效应 图像获取 图像的采样和量化 图像内插(重采样) 图像的表示与描述 像素间的关系 exercise:4-邻域连通区域标记 本文章讲解数字图像处理的基础,大部分内容来源于课堂笔记中 图像感…...
3.3.1详解linux内核链表list_head及其接口应用
文章目录 1 list定义2 list接口2.1 list初始化方法1:定义并初始化链表方法2:先定义再初始化链表2.2 list_add2.3 list_del2.4 list_replace2.5 list_move2.6 list_splice3 list遍历3.1 list_entry3.2 list_first_entry3.3 list_last_entry3.4 list_first_entry_or_null3.5 li…...

发挥云计算潜力:Amazon Lightsail 与 Amazon EC2 的综述
文章作者:Libai 欢迎来到云计算世界,这里有无数的机会和无限的应用程序增长。 在当今的数字时代,企业可能会发现管理基础架构和扩展应用程序具有挑战性。 传统的本地解决方案需要大量的硬件、软件和维护前期投资。 要满足不断增长的需求&…...

【深度学习】卷积神经网络(CNN)
一、引子————边界检测 我们来看一个最简单的例子:“边界检测(edge detection)”,假设我们有这样的一张图片,大小88: 图片中的数字代表该位置的像素值,我们知道,像素值越大&#…...

科普:多领域分布式协同仿真
分布式协同仿真是一种在分布式计算环境中进行协同工作的仿真方法。使用该方法进行协同仿真时,仿真任务将被分发到多个计算节点上,并且这些节点可以同时工作以模拟完整的系统行为。分布式协同仿真已被广泛应用于工程、科学和军事领域,以便更好…...

openstack(2)
目录 块存储服务 安装并配置控制节点 安装并配置一个存储节点 验证操作 封装镜像 上传镜像 块存储服务 安装并配置控制节点 创建数据库 [rootcontroller ~]# mysql -u root -pshg12345 MariaDB [(none)]> CREATE DATABASE cinder; MariaDB [(none)]> GRANT ALL PR…...

Jmeter 压测保姆级入门教程
1、Jmeter本地安装 1.1、下载安装 软件下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/jmeter/binaries/ 选择一个压缩包下载即可 然后解压缩后进入bin目录直接执行命令jmeter即可启动 1.2 修改语言 默认是英文的,修改中文,点击…...
springboot2.1升级到2.7 actuator丢失部分metrics端点
项目场景: 项目需要升级springboot从2.1升级至2.7 问题描述 发现之前的metrics后面的jvm相关的端口丢了 原因分析: 找到这样一篇博文https://blog.csdn.net/CL_YD/article/details/120309094,这篇博文意思是对的,但是写的不太好…...

梦开始的地方——Adobe Premiere Pro
今天,我们来说说一款老生常谈的相信也是很多人都经常迫切需要的软件。Adobe Premiere Pro,简称Pr,是由Adobe公司开发的一款视频编辑软件。 Premiere Pro是视频编辑爱好者和专业人士必不可少的视频编辑工具。它可以提升您的创作能力和创作自由…...
Nginx同时支持Http和Https的配置详解
当配置Nginx同时支持HTTP和HTTPS时,需要进行以下步骤: 安装和配置SSL证书: 获得SSL证书:从可信任的证书颁发机构(CA)或使用自签名证书创建SSL证书。 将证书和私钥保存到服务器:将SSL证书和私钥…...

3.2 Windows驱动开发:内核CR3切换读写内存
CR3是一种控制寄存器,它是CPU中的一个专用寄存器,用于存储当前进程的页目录表的物理地址。在x86体系结构中,虚拟地址的翻译过程需要借助页表来完成。页表是由页目录表和页表组成的,页目录表存储了页表的物理地址,而页表…...

基于springBoot+Vue的停车管理系统
开发环境 IDEA JDK1.8 MySQL8.0Node 系统简介 本项目为前后端分离项目,前端使用vue,后端使用SpringBoot开发,主要的功能有用户管理,停车场管理,充值收费,用户可以注册登录系统,自主充值和预…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...

Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...