当前位置: 首页 > news >正文

GIt快速入门(一文学会使用Git)

GIt快速入门

文章目录

  • GIt快速入门
    • 一、为什么要学习Git
    • 二、Git的安装
        • 1.安装Git
        • 2.下载GUI
    • 三、Git的概念
      • 1、版本控制
      • 2、集中式控制
      • 3、分布式控制
      • 4、多人协作开发
        • 1.并行开发
        • 2.分支管理
        • 3.冲突解决
        • 4.代码审查
        • 5.分布式特性
    • 四、Git客户端操作
      • 1.界面介绍
      • 2.提交操作
      • 3.创建分支
      • 4.合并分支
      • 5.合并冲突的解决
      • 6.标签的创建
      • 7.远程仓库的创建
        • 7.1 githup远程仓库创建
          • 7.1.1远程仓库的拉取
          • 7.1.2 本地仓库的上传与推送
        • 7.2 Gitee远程仓库创建
    • 五、Git集成
      • 1、IDE集成GitHub
      • 2、IDE集成Gitee
      • 3.推送
    • 六、Git版本号
      • 1、介绍
      • 2、文件操作
      • 3、分支操作
        • 1. 分支的概念
    • 七、Git命令
      • 1、初始化 Git 仓库
      • 2、查看当前状态
      • 3、常用命令
      • 4、提交更改
      • 5、查看提交历史
      • 6、恢复文件
      • 7、删除文件
      • 8、忽略文件
      • 9、移动和重命名文件
      • 10、撤销更改
      • 11、HTTPS方式操作
      • 12、ssh方式操作
        • 1. 生成SSH密钥对
        • 2. 查看公钥
        • 3. 在Git服务器上添加公钥
        • 4. 验证SSH连接
        • 5.注意事项
    • 八、总结

一、为什么要学习Git

Git软件在项目开发中扮演着至关重要的角色,它不仅仅是一个版本控制系统,更是团队协作、质量保证和持续集成的核心工具。

Git提供了强大的版本控制功能,确保项目历史的完整性和可追溯性。通过Git,开发者可以轻松地查看项目文件的每一次变更,包括修改的内容、时间、作者等信息。这使得团队成员能够清晰地了解项目的演进过程,及时发现和解决问题。

Git支持多人协作开发,通过分支功能实现并行工作。团队成员可以在各自的分支上进行独立的开发工作,而不会相互干扰。当开发完成后,可以通过合并请求(如GitHub的Pull Request)将更改合并到主分支,经过代码审查后再进行集成。这种工作模式大大提高了团队的协作效率,同时保证了代码质量。

Git还提供了代码审查的功能。团队成员在合并代码之前,可以对代码进行详细的审查,提出修改意见和建议。这有助于确保代码质量,减少潜在的问题和错误。同时,代码审查也是团队成员之间相互学习和交流的好机会。

在项目开发过程中,Git还可以帮助开发者进行错误追踪与回滚。如果项目中出现了问题,开发者可以通过查看提交历史来定位问题的来源。一旦找到问题,可以使用Git的回滚功能将项目恢复到之前的状态,从而迅速解决问题。

除了以上功能外,Git还具有跨平台兼容性,可以在不同的操作系统上运行。这使得团队成员可以在不同的平台上无缝协作,无需担心因平台差异导致的兼容性问题。

最后,Git可以与其他工具集成,实现持续集成与部署。通过与自动化测试、构建和部署工具的结合,Git可以实现项目的自动化构建、测试和部署,从而加速软件开发生命周期,提高项目的交付效率。Git在项目开发中发挥着不可替代的作用。它不仅是版本控制的利器,更是团队协作、质量保证和持续集成的核心工具。通过Git,我们可以更好地管理项目、提高开发效率、保证代码质量,并实现快速交付。

二、Git的安装

1.安装Git

浏览器搜索git官网,这里以Windows系统为例
在这里插入图片描述

选择系统点击安装

在这里插入图片描述

安装过程可一路next。

2.下载GUI

在这里插入图片描述

打开后可以直接选择第一个下载。

在这里插入图片描述

选择GitHub Desktop下载可执行程序。

三、Git的概念

1、版本控制

我们都知道版本通常分为软件版本和文件版本,软件版本以数字版本号为例,我们知道数字越大代表我们的版本越新,而文件版本呢?例如我们有一份重要的文件,我们需要修改,而原文件的内容又比较重要,这时我们就需要复制一份进行我们的修改,假如命名为XXX_v1,而这个名字就可以理解为版本号。而文件版本最主要的作用就是保存重要的历史记录以及恢复重要的历史记录。但当我们文件非常多时,我们还能通过复制一份来进行更改吗,显然是不能了。这时,我们的版本控制工具就派上了用场。

2、集中式控制

集中式版本控制系统(如SVN)的特点主要包括:

中央服务器:所有的版本数据都存储在中央服务器上,开发者在本地工作,并通过网络从中央服务器获取最新的代码,或提交自己的更改。
单点故障:由于所有版本数据都存储在中央服务器上,如果服务器出现问题(如宕机),那么所有开发者都无法进行版本控制操作,直到服务器恢复。
权限管理:管理员可以轻松地掌控每个开发者的权限,确保项目的安全性和可控性。

3、分布式控制

Git的分布式特性使其与集中式版本控制系统有着显著的区别:

本地仓库:每个开发者都有一个完整的本地仓库,包含了整个项目的所有历史版本数据。这意味着即使在没有网络连接的情况下,开发者也可以进行版本控制操作。
远程仓库:远程仓库(如GitHub、GitLab等)用于多人协作和代码共享。开发者可以将自己的本地仓库推送到远程仓库,或从远程仓库拉取最新的代码。
分支管理:Git的分支功能非常强大,可以轻松创建、合并和删除分支。这使得开发者可以在不同的分支上进行并行开发,而不会相互干扰。
自动合并:当多个开发者对同一部分代码进行了修改时,Git会尝试自动合并这些更改。如果合并过程中出现冲突,Git会提示开发者手动解决冲突。

4、多人协作开发

Git多人协作是一种高效、灵活的软件开发模式,它充分利用了Git的分布式版本控制特性,使得团队成员能够并行工作、共享代码,并轻松管理代码的版本和变更。

1.并行开发

Git允许多个开发者同时在同一项目上工作,每个开发者都可以在本地创建自己的分支进行开发。每个分支都是独立的,开发者可以在自己的分支上进行修改和提交,而不会影响其他人的工作。
这种并行开发模式可以大大加快开发的进度,提高团队的效率。

2.分支管理

Git支持创建多个分支,开发者可以在不同的功能或修复任务上并行工作。每个分支都可以看作是一个独立的工作流,使得多个任务可以同时进行,互不干扰。
分支的创建、合并和删除都非常灵活和简单,通过Git命令可以轻松管理。

3.冲突解决

当多个开发者同时修改同一部分代码时,Git会提示冲突。通过Git的冲突解决机制,团队成员可以清晰地看到哪里存在冲突,并快速地进行合并,确保代码的正确性。
Git的冲突解决过程通常是可视化的,可以使用文本编辑器或专门的合并工具进行编辑和比较。

4.代码审查

Git可以与各种代码审查工具集成,帮助团队成员相互审查代码,提高代码质量。代码审查可以发现潜在的问题、错误和不良实践,并及时进行修复和改进。

5.分布式特性

Git的分布式特性使得每个开发者都拥有完整的项目副本,不依赖于服务器的稳定性和网络连接。即使服务器宕机或者网络中断,开发者仍然可以进行提交、分支合并等操作。每个开发者都可以在本地进行版本控制和文件管理,大大减少了对中央服务器的依赖。

在实际项目中,团队可以使用Git进行多人协作开发。首先,需要初始化一个Git仓库,并将所有开发者添加到仓库的访问列表中。
开发者可以在本地创建分支,进行开发和测试。当完成开发后,可以将本地分支推送到远程仓库,并与其他开发者共享代码。
其他开发者可以从远程仓库拉取最新的代码,并在自己的分支上进行修改和提交。通过Git的合并功能,可以将多个分支的代码合并到主分支中,完成项目的集成和发布。

Git多人协作是一种高效、灵活的软件开发模式,它通过分布式版本控制特性实现了多人同时工作、并行开发和代码共享。Git的分支管理、冲突解决、代码审查和分布式特性等优势使得团队能够更高效地进行软件开发和协作。

四、Git客户端操作

1.界面介绍

在这里插入图片描述

第一个选项表示克隆一个仓库到本地,表示将互联网的仓库拉取到本地。

第二个选项表示在本地创建一个新的仓库。

第三个表示添加已有仓库到软件的列表。

2.提交操作

在这里插入图片描述

软件页面左侧会显示本地更改的文件,填写摘要Summary(required),点击下方的Commit to maser完成文件提交。

3.创建分支

在这里插入图片描述

点击分支选项卡下拉菜单,点击new brance添加新的分支。

4.合并分支

选择上图中最下面的选项卡,选择要合并的分支。

5.合并冲突的解决

例如这是两个冲突文件的内容

在这里插入图片描述
这表示第一个文件的内容是user第二个文件的内容是order,可自行选择要保留的文件,将内容以外的其他东西删除,表示将两个文件的内容进行合并。

6.标签的创建

在这里插入图片描述

点击此选项卡创建标签,以此来标记每次操作的目的。

7.远程仓库的创建

7.1 githup远程仓库创建

打开官网选择登录后点击主页new选项卡开始创建仓库。

在这里插入图片描述

在这里插入图片描述
填写仓库名称和描述,选择最下方Creat按钮完成创建。

在这里插入图片描述

仓库创建完成。

7.1.1远程仓库的拉取

点击文件file选项卡,点击Options登录与Githup相同的账户。

在这里插入图片描述
再次点击文件选项卡,点击克隆(下载)仓库到本地

在这里插入图片描述

选择要下载的远程仓库,以及位置。

在这里插入图片描述

7.1.2 本地仓库的上传与推送

上传指将文件上传至本地仓库,推送指将代码推送至远程仓库。

点击commit to main上传至main分支

在这里插入图片描述
点击Publish brance将文件推送至远程仓库。

在这里插入图片描述

刷新远程仓库即可发现推送文件。

在这里插入图片描述

7.2 Gitee远程仓库创建

创建过程与7.1基本相同,只是在下载远程仓库到本地时选择URL选项,添加Gitee仓库的URL。后续操作与7.1相同。

在这里插入图片描述
在这里插入图片描述

五、Git集成

1、IDE集成GitHub

这里IDE以CLion为例,进入软件后,点击githup,选择在上面共享项目。

在这里插入图片描述

登录账号,即可关联至远程仓库。

在这里插入图片描述

2、IDE集成Gitee

Gitee需要在插件市场下载插件Gitee,后续操作与1相同。

在这里插入图片描述

3.推送

点击分支,点击提交并推送,即可推送至远程仓库。

在这里插入图片描述
或右键需要推送的文件。
在这里插入图片描述

六、Git版本号

1、介绍

git共有40位版本号,前两位用于定位文件夹位置,其余38位用来定位文件内容。

2、文件操作

Git对文件操作,可以使用命令git cat-file -p + 文件版本号,命令需要运行在Git bush here 中,右键单击即可看到。

3、分支操作

Git的分支操作是指在Git版本控制系统中创建、切换、合并和删除分支的一系列命令和过程。分支是Git中一个非常重要的概念,它允许开发者在不影响主线(通常是mastermain分支)的情况下进行并行开发。以下是关于Git分支操作的详细解释:

1. 分支的概念

分支在Git中代表一条独立的开发线。每个分支都有自己的提交历史,允许开发者在不同的分支上并行工作。

使用分支的好处包括:

可以同时并行推进多个功能开发,提高开发效率。

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。

失败的分支可以删除并重新开始。

七、Git命令

Git 是一个版本控制系统,用于跟踪和管理代码更改。在使用 Git 时,你会经常与文件和目录进行交互。以下是一些基本的 Git 文件操作命令:

1、初始化 Git 仓库

如果你还没有 Git 仓库,你可以使用 git init 命令来初始化一个。

git init

2、查看当前状态

使用 git status 命令来查看当前仓库的状态,包括哪些文件被修改、哪些文件被添加到暂存区等。

git status

3、常用命令

使用 git add 命令将文件添加到暂存区。你可以添加单个文件,也可以使用通配符来添加多个文件。

# 添加单个文件
git add filename.txt# 添加多个文件
git add file1.txt file2.txt# 添加所有文件
git add .# 创建新分支 xxx 注意:提交后才可以创建
git branch xxx# 删除新分支
git branch -b xxx# 切换新分支 xxx
git checkout xxx# 创建并切换到xxx分支
git checkout -b xxx# 增加标签
git tag xxx 文件版本号# 删除标签
git tag -b xxx

4、提交更改

使用 git commit 命令将暂存区的更改提交到仓库。在提交时,通常需要提供一个描述更改的提交信息。

git commit -m "Describe your changes here"

5、查看提交历史

使用 git log 命令来查看提交历史。

git log

6、恢复文件

如果你不小心修改了文件并希望恢复到之前的版本,你可以使用 git restore 命令。

# 恢复文件 用于在本地仓库误删除文件
git restore xx.文件型号

7、删除文件

如果你希望从 Git 仓库中删除一个文件,你需要先删除文件本身(使用文件系统命令如 rm),然后使用 git addgit commit 来提交这个删除操作。

# 删除文件
rm filename.txt# 添加删除操作到暂存区
git add filename.txt# 提交删除操作
git commit -m "Remove filename.txt"

8、忽略文件

如果你希望 Git 忽略某些文件或目录(例如,编译生成的文件、配置文件等),你可以在仓库的根目录下创建一个名为 .gitignore 的文件,并在其中列出要忽略的文件或目录的模式。

9、移动和重命名文件

你可以使用文件系统命令(如 mv)来移动或重命名文件,然后使用 git addgit commit 来提交这个更改。Git 会识别文件的移动或重命名。

10、撤销更改

撤销暂存区的更改(但保留工作目录中的更改):git reset HEAD filename.txt

撤销最近的提交(创建一个新的提交来撤销更改):git revert HEAD

这些只是 Git 文件操作的基本命令。Git 还有许多其他功能和命令,可以帮助你更有效地管理代码和项目。

11、HTTPS方式操作

通过HTTPS推送需要设置用户名,操作命令如下:

# 初始化本地仓库 即在本地创建仓库
git  init # 链接远程仓库
git remote add origin https//.....# 克隆远程仓库 git clone https://.....
git clone '仓库https链接'# 配置单个仓库推送用户名
git config user.name xxxx# 配置单个仓库推送邮箱地址
git config user.email xxxxx.xxx.com# 配置全局推送用户名
git config --global user.name xxxx# 配置全局推送邮箱地址
git config --global user.email xxxxx.xxx.com# 添加单个文件
git add filename.txt# 添加多个文件
git add file1.txt file2.txt# 添加所有文件
git add .# 增加同类型文件
git add *.文件类型# 提交操作
git commit -m "Describe your changes here"# 推送至远程仓库
git push master# 拉取远程仓库到本地
git pull origin

12、ssh方式操作

Git的SSH方式操作流程主要包括以下几个步骤:

1. 生成SSH密钥对

首先,你需要在本地机器上生成SSH密钥对,这通常包括一个私钥(id_rsa)和一个公钥(id_rsa.pub)。私钥用于本地身份验证,公钥则上传到Git服务器用于验证你的身份。

在Windows系统上

  1. 打开Git Bash(或其他命令行工具)。

  2. 输入以下命令(替换your_email@example.com(ssh地址)为你的邮箱地址):

    ssh-keygen -t rsa -C "your_email@example.com"
    

    连续按三次回车,在命令行提示的路径下找到id_rsh.pub。复制公钥。

步骤与Windows系统类似,但通常可以直接在终端中执行上述命令。

2. 查看公钥

密钥对生成后,公钥通常保存在~/.ssh/id_rsa.pub(Linux/Mac)或C:\Users\你的用户名\.ssh\id_rsa.pub(Windows)中。你可以使用文本编辑器或cat命令(Linux/Mac)来查看公钥的内容。

3. 在Git服务器上添加公钥

接下来,你需要将公钥添加到Git服务器上,以便Git服务器能够验证你的身份。这个过程因Git服务器而异,但通常涉及以下步骤:

  1. 登录到你的Git服务器账户(如GitHub、Gitee等)。
  2. 导航到SSH密钥设置页面(通常位于用户设置或账户设置的“SSH and GPG keys”部分)。
  3. 点击“添加SSH密钥”或类似的按钮。
  4. 在弹出的表单中,输入一个标题(例如你的机器名或邮箱地址)和公钥内容。
  5. 点击“添加密钥”或类似的按钮保存设置。
4. 验证SSH连接

最后,你可以通过SSH命令来验证你的连接是否配置正确。在命令行中输入以下命令(替换git@your_git_server.com为你的Git服务器地址):

ssh -T git@your_git_server.com

如果连接成功,你应该会看到一个欢迎消息或类似的输出。如果出现错误消息,请检查你的SSH密钥是否已正确添加到Git服务器,以及你的SSH客户端配置是否正确。

通过命令连接远程仓库:

git remote add origin git@.....# 初始化本地仓库 即在本地创建仓库
git  init # 添加单个文件
git add filename.txt# 添加多个文件
git add file1.txt file2.txt# 添加所有文件
git add .# 增加同类型文件
git add *.文件类型# 提交操作
git commit -m "Describe your changes here"# 推送至远程仓库
git push master# 拉取远程仓库到本地
git pull origin
5.注意事项
  • 请确保你的私钥文件(id_rsa)保存在安全的地方,不要将其共享给任何人。
  • 如果你在多个机器上使用Git,并且希望使用相同的SSH密钥进行身份验证,你可以将公钥添加到多个Git服务器上。但是,每个机器都应该有自己的私钥文件。
  • 如果你更改了私钥的密码短语或丢失了私钥文件,你将需要重新生成密钥对并将新的公钥添加到Git服务器上。这将导致现有的SSH连接失效,因此请确保在这样做之前通知你的团队成员或更新相关的文档。

八、总结

通过上述操作,我们使用了不同的方式完成了远程仓库和本地仓库的交互,我们可以更好地管理项目、提高开发效率、保证代码质量,并实现快速交付。

相关文章:

GIt快速入门(一文学会使用Git)

GIt快速入门 文章目录 GIt快速入门一、为什么要学习Git二、Git的安装1.安装Git2.下载GUI 三、Git的概念1、版本控制2、集中式控制3、分布式控制4、多人协作开发1.并行开发2.分支管理3.冲突解决4.代码审查5.分布式特性 四、Git客户端操作1.界面介绍2.提交操作3.创建分支4.合并分…...

电机测试方法的介绍与功能实现(T测试方法)

目录 概述 1 理论介绍 2 实现原理 2.1 旋转式编码器原理 2.2 系统实现框图 2.3 测速原理 2.4 计算速度值 3 STM32Cube配置项目 3.1 软件版本信息 3.2 配置项目 4 代码实现 4.1 电机速度控制 4.2 速度计算函数 4.3 功能实现 5 测试 概述 本文主要介绍测试电机速…...

多线程和多进程的快速入门

多线程和多进程的快速入门 学习自:莫烦Python www.mofanpy.com Threading - 多线程运算python程序 ​ 多线程的简单理解:把数据分成很多段,将每一段数据放入一个线程,将所有的线程同时开始,大大的节省了运算时间。相…...

【TensorFlow深度学习】经典卷积网络架构回顾与分析

经典卷积网络架构回顾与分析 经典卷积网络架构回顾与分析:从AlexNet到ResNet、VGGLeNet、ResNet、DenseNet的深度探索AlexNet ——深度学习的破冰点火VGGNet — 简洁的美ResNet — 深持续深度的秘钥DenseNet — 密集大成塔实战代码示例:ResNet-50模型结语…...

Salesforce推出Einstein 1 Studio:用于自定义Einstein Copilot并将人工智能嵌入任何CRM应用程序的低代码人工智能工具

一、关键要点 1. Salesforce管理员和开发人员现在可以在每个Salesforce应用程序和工作流程中构建、定制和嵌入人工智能,包括Einstein Copilot。 2. Einstein 1 Studio与数据云深度集成,通过对客户数据和元数据的全面理解,解锁并统一被捕获的…...

点赋科技:建设智能饮品高地,打造数字化产业先锋

在当今数字化时代的浪潮中,点赋科技以其敏锐的洞察力和卓越的创新能力,致力于建设智能饮品高地,打造数字化产业先锋。 点赋深知智能饮品机对于推动社会进步和满足人们日益增长的需求的重要性。因此,他们投入大量资源和精力&#x…...

ORACLE RAC的一些基本理论知识

一 . Oracle RAC 的发展历程 1. Oracle Parallel Server (OPS) 早期阶段:Oracle 6 和 7 Oracle Parallel Server(OPS)是 Oracle RAC 的前身。 通过多个实例并行访问同一个数据库来提高性能。 共享磁盘架构,利用分布式锁管理&am…...

CMake的作用域:public/private/interface

在 CMake 中,public、private和 interface是用来指定目标属性的作用域的关键字,这三个有什么区别呢?这些关键字用于控制属性的可见性和传递性,影响了目标之间的依赖关系和属性传递。 public 如果在一个目标上使用 public关键字时…...

设计模式基础知识点(七大原则、UML类图)

Java设计模式(设计模式七大原则、UML类图) 设计模式的目的设计模式七大原则单一职能原则(SingleResponsibility)接口隔离原则(InterfaceSegreation)依赖倒转原则(DependenceInversion&#xff0…...

Android开机动画的结束过程BootAnimation(基于Android10.0.0-r41)

文章目录 Android 开机动画的结束过程BootAnimation(基于Android10.0.0-r41) Android 开机动画的结束过程BootAnimation(基于Android10.0.0-r41) 路径frameworks/base/cmds/bootanimation/bootanimation_main.cpp init进程把我们的BootAnimation的二进制文件拉起来了&#xf…...

微软远程连接工具:Microsoft Remote Desktop for Mac 中文版

Microsoft Remote Desktop 是一款由微软开发的远程桌面连接软件,它允许用户从远程地点连接到远程计算机或虚拟机,并在远程计算机上使用桌面应用程序和文件。 下载地址:https://www.macz.com/mac/5458.html?idOTI2NjQ5Jl8mMjcuMTg2LjEyNi4yMz…...

【安规介绍】

文章目录 一、基础知识安规上的六类危险的防护:安全电压漏电流接触电流能量问题:火灾问题:热问题结构问题阻燃等级绝缘等级:对接地系统的要求:结构要求:电气要求: 二、设计的关键电气绝缘距离电气爬电距离:…...

[sylar]后端学习:配置环境(一)

1.介绍 基于sylar大神的C高性能后端网络框架来进行环境配置和后续学习。网站链接:sylar的Linux环境配置 2.下载 按照视频进行下载,并进行下载,并最好还要下载一个vssh的软件。可以直接在网上搜索即可。 sylar_环境配置,vssh下…...

XDMA原理及其应用和发展

XDMA原理 XDMA的主要原理是通过直接访问主机内存,实现数据的快速传输。在传统的DMA(Direct Memory Access)技术中,数据传输需要经过CPU的干预,而XDMA可以绕过CPU,直接将数据从外设读取到主机内存或者从主机…...

携程梁建章:持续投资创新与AI,开启旅游行业未来增长

5月30至31日,携程集团在上海和张家界举办Envision 2024全球合作伙伴大会,邀请超50个国家和地区的1600余名外籍旅游业嘉宾与会,共同探讨中国跨境旅游市场发展机遇,讲好中国故事。 携程国际业务增速迅猛,创新与AI解锁未…...

【网络安全的神秘世界】在win11搭建pikachu靶场

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 下载pikachu压缩包 https://github.com/zhuifengshaonianhanlu/pikachu 下载好的pikachu放在phpstudy_pro/www目录下 创建pikachu数据库 打开phpstudy软件…...

基于Java的零食管理系统的设计与实现(论文+源码)_kaic

摘 要 随着科技的进步,以及网络的普及,都为人们的生活提供了极大的方便。因此,在管理”三姆”宿舍在线零食商店时,与现代的网络联系起来是非常必要的,本次设计的系统在研发过程中应用到了Java技术,这在一定…...

【案例实操】银河麒麟桌面操作系统实例分享,V10SP1重启后网卡错乱解决方法

1.问题现象 8 个网口, 命名从 eth1 开始到 eth8。 目前在系统 grub 里面加了 net.ifnames0 biosdevname0 参数, 然后在 udev 规则中加了一条固定网卡和硬件 pci 设备号的规则文件。 最后在 rc.local 中加了两条重新安装网卡驱动的命令( rmmod…...

初级前端开发岗

定位: 日常任务的辅助执行者,前端基础建设的参与者。 素质要求: 是否遵循部门敏捷流程、规范、P0制度;具备良好的沟通和协作能力;负责日常迭代任务的落地执行;拥有较强的执行力,能够灵活解决问题; 职责&#xff1a…...

颠仆流离学二叉树2 (Java篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…...

柏林自由大学研究团队《Ecology Letters 》揭示AMF在植物对全球变化响应的作用

全球环境变化正在影响陆生植物生长。植物已经进化出各种策略来应对这些挑战,其中之一是与丛枝菌根真菌(AMF)形成共生关系(高达80%的陆生植物物种)。AMF为寄主植物提供各种益处,例如营养吸收、耐受性、食草动物防御和抗病能力,以换取糖和脂质(…...

libevent源码跨平台编译(windows/macos/linux)

1.windows编译: 克隆: git clone https://github.com/libevent/libevent.git 克隆成功 生成makefile 生成成功 默认不支持OpenSSL,MbedTLS,ZLIB这三个库 编译: cmake --build . --config release...

idea+tomcat+mysql 从零开始部署Javaweb项目(保姆级别)

文章目录 新建一个项目添加web支持配置tomcat优化tomcat的部署运行tomcatidea数据库连接java连接数据库 新建一个项目 new project;Java;选择jdk的版本;next;next;填写项目名字,选择保存的路径;…...

LeetCode 每日一题 2024/5/27-2024/6/2

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 5/27 2028. 找出缺失的观测数据5/28 2951. 找出峰值5/29 2981. 找出出现至少三次的最长特殊子字符串 I5/30 2982. 找出出现至少三次的最长特殊子字符串 II5/31 2965. 找出缺…...

BOOST_SREATCH

BOOST Boost是一个由C社区开发的开源库,为C语言标准库提供扩展。这个库由C标准委员会库工作组成员发起,旨在提供大量功能和工具,帮助C开发者更高效地编写代码。Boost库强调跨平台性和对标准C的遵循,因此与编写平台无关&#xff0…...

MySQL学习——获取数据库和表格的信息

如果忘记了数据库或表的名称,或者不确定给定表的结构(例如,其列的名称),该怎么办呢?MySQL通过几个语句解决了这个问题,这些语句提供了有关它支持的数据库和表的信息。 你之前已经看过SHOW DATA…...

Go语言redis框架 — go-redis

https://zhuanlan.zhihu.com/p/645669818 一、简述 1. API友好,命令名称和参数与Redis原生命令一致,使用简单方便。 2. 支持完整的Redis命令集,覆盖了字符串、哈希、列表、集合、有序集合、HyperLogLog等数据结构。 3. 支持连接池&#x…...

C++ | Leetcode C++题解之第125题验证回文串

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isPalindrome(string s) {int n s.size();int left 0, right n - 1;while (left < right) {while (left < right && !isalnum(s[left])) {left;}while (left < right && !isalnu…...

Spring创建对象的多种方式

一、对象分类 简单对象&#xff1a;使用new Obj()方式创建的对象 复杂对象&#xff1a;无法使用new Obj()方式创建的对象。例如&#xff1a; 1. AOP创建代理对象。ProxyFactoryBean; 2. Mybatis中的SqlSessionFactoryBean; 3. Hibernate中的SessionFactoryBean。二、创建对象方…...

宝塔部署前后端分离项目手册

文章目录 安装宝塔安装环境开始部署1. 前端Vue项目1.先本地启动前端项目&#xff08;记住端口号&#xff09;2.打包前端项目3.上传前端项目4.创建PHP站点5.安全里开放端口号6.测试前端 2. 后端boot项目1. 先在本地跑起来2.修改数据库的配置信息3. 项目打包4. nohup启动项目4.1 …...

Leetcode 第 397 场周赛题解

Leetcode 第 397 场周赛题解 Leetcode 第 397 场周赛题解题目1&#xff1a;3146. 两个字符串的排列差思路代码复杂度分析 题目2&#xff1a;思路代码复杂度分析 题目3&#xff1a;3148. 矩阵中的最大得分思路代码复杂度分析 题目4&#xff1a;3149. 找出分数最低的排列思路代码…...

Python+Selenium自动化测试项目实战

第 1 章 自动化测试 1.1、自动化测试介绍 自动化测试就是通过自动化测试工具帮我们打开浏览器&#xff0c;输入网址&#xff0c;输入账号密码登录&#xff0c;及登录后的操作&#xff0c;总的说来自动化测试就是通过自动化测试脚本来帮我们从繁琐重复的手工测试里面解脱出来&…...

WPS部分快捷操作汇总

记录一些个人常用的WPS快捷操作 一、去除文档中所有的超链接&#xff1a; 1、用WPS打开文档&#xff1b; 2、用Ctrla全选&#xff0c;或者点击上方的【选择】-【全选】&#xff0c;选中文档全部内容&#xff1b; 3、按CTRLSHIFTF9组合键&#xff0c;即可一次性将取文档中所有…...

Kubernetes (K8s) 普及指南

在当今的云计算和微服务时代&#xff0c;Kubernetes&#xff08;简称K8s&#xff09;已经成为容器编排的标准工具。它帮助开发者和运维人员管理和部署应用程序&#xff0c;实现高可用性、可伸缩性和自我修复。本文将详细介绍Kubernetes的基本概念、核心组件、工作原理及其优势。…...

Oracle RAC 集群配置共享目录ACFS

Oracle RAC 集群配置共享目录ACFS 应用场景&#xff1a;创建的ACFS文件系统用于部署OGG做数据同步使用。 1、创建共享磁盘组 create diskgroup OGG external redundancy disk /dev/mapper/ASM08, /dev/mapper/ASM09; 2、创建 acfs 文件系统 ACFS文件系统 在ASM磁盘组中通过A…...

Google Cloudbuild yaml file 中 entrypoint 和 args 的写法

编写cloudbuild.yaml 时有几个关键参数 entrypoint 和 args 的基本介绍 id: 显示在 cloud build logs 里的item 名字 name: docker 镜像名字 - 下面的命令会在这个镜像的1个容器instance 内执行 entrypoint: 执行的命令入口 &#xff0c; 只能有1个对象 args&#xff1a; 命名…...

鸿蒙开发接口图形图像:【@ohos.window (窗口)】

窗口 窗口提供管理窗口的一些基础能力&#xff0c;包括对当前窗口的创建、销毁、各属性设置&#xff0c;以及对各窗口间的管理调度。 该模块提供以下窗口相关的常用功能&#xff1a; [Window]&#xff1a;当前窗口实例&#xff0c;窗口管理器管理的基本单元。[WindowStage]&…...

LLM 基准测试的深入指南

随着越来越多的 LLM 可用,对于组织和用户来说,快速浏览不断增长的环境并确定哪些模型最适合他们的需求至关重要。实现这一目标的最可靠方法之一是了解基准分数。 考虑到这一点,本指南深入探讨了 LLM 基准的概念、最常见的基准是什么以及它们需要什么,以及仅依赖基准作为模…...

深入理解Redis事务、事务异常、乐观锁、管道

Redis事务与MySQL事务 不一样。原子性&#xff1a;MySQL有Undo Log机制&#xff0c;支持强原子性&#xff0c;和回滚。Redis只能保证事务内指令可以不被干扰的在同一批次执行&#xff0c;且没有机制保证全部成功则提交&#xff0c;部分失败则回滚。隔离性&#xff1a;MySQL的隔…...

17、Spring系列-SpringMVC-请求源码流程

前言 Spring官网的MVC模块介绍&#xff1a; Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就已包含在Spring框架中。正式名称“ Spring Web MVC”来自其源模块的名称&#xff08;spring-webmvc&#xff09;&#xff0c;但它通常被称为“ Spring MVC…...

对简单工厂模式、工厂方法模式、抽象工厂模式的简单理解

简单工厂模式 三部分组成 抽象类一些抽象类的具体实现类工厂类 把创建对象的任务交给一个工厂类来实现&#xff0c;对业务进行封装。 优点&#xff1a;实现了任务分离&#xff0c;客户端不用关心业务的具体实现&#xff0c;交由工厂来“生产”。 缺点&#xff1a;违背开闭原…...

PostgreSQL常用插件

PostgreSQL 拥有许多常用插件&#xff0c;这些插件可以大大增强其功能和性能。以下是一些常用的 PostgreSQL 插件&#xff1a; 性能监控和优化 pg_stat_statements 1.提供对所有 SQL 语句执行情况的统计信息。对调优和监控非常有用。 2.安装和使用&#xff1a; pg_stat_k…...

mysql表字段超过多少影响性能 mysql表多少效率会下降

一直有传言说&#xff0c;MySQL 表的数据只要超过 2000 万行&#xff0c;其性能就会下降。而本文作者用实验分析证明&#xff1a;至少在 2023 年&#xff0c;这已不再是 MySQL 表的有效软限制。 传言 互联网上有一则传言说&#xff0c;我们应该避免单个 MySQL 表中的数据超过 …...

Vue进阶之Vue无代码可视化项目(一)

Vue无代码可视化项目 项目搭建初始步骤拓展:工程项目从0-1项目规范化package.jsoncpell.jsoncustom-words.txtts-eslint规则.eslintrc.cjsgit钩子检查有没有问题type-checkspellchecklint:stylehusky操作安装pre-commitpnpm的commit规范package.json:commitlint.config.cjs安装…...

初识C++ · 模拟实现list

目录 前言 1 push_back pop_back 2 迭代器类 2.1 ! 2.2 -- 2.3 * 3 Print_List 4 有关自定义类型 5 有关const迭代器 6 拷贝构造 赋值 析构 Insert erase 前言 有了string&#xff0c;vector的基础&#xff0c;我们模拟实现list还是比较容易的&#xff0c;这里同…...

电商运营-2024年6月1日

作为一名电商运营&#xff0c;针对淘工厂平台&#xff0c;需要具备以下核心技能和素质&#xff1a; 核心技能 新店入驻与产品管理 熟练掌握淘工厂平台的新店入驻流程&#xff0c;包括资质准备、资料提交、审核跟进等。精通产品上架技巧&#xff0c;确保产品信息准确、图片清晰…...

Go跨平台编译

1.编译windows平台运行程序 # windows env GOOSwindows GOARCHamd64 go build main.go2.编译linux平台运行程序 # linux env GOOSlinux GOARCHamd64 go build main.go 3.编译macos平台运行程序 # macos env GOOSdarwin GOARCHamd64 go build main.go 编译结果:...

生产计划排产,制定每小时计划产量(“查表法”SQL计算)

根据日生产计划产量排产&#xff0c;制定每2小时理论计划生产产量。 每2小时计划产量 每2小时工作时间&#xff08;秒&#xff09;/生产计划节拍&#xff08;秒&#xff09;。 假设&#xff0c;生产计划节拍 &#xff1a; 25.0(秒)/台 工厂以每天8点00分钟作为当日工作日的…...

视频汇聚管理安防监控平台EasyCVR程序报错“create jwtSecret del server class:0xf98b6040”的原因排查与解决

国标GB28181协议EasyCVR安防视频监控平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流…...

头歌页面置换算法第2关:计算OPT算法缺页率

2 任务:OPT算法 2.1 任务描述 设计OPT页面置换算法模拟程序:从键盘输入访问串。计算OPT算法在不同内存页框数时的缺页数和缺页率。要求程序模拟驻留集变化过程,即能模拟页框装入与释放过程。 2.2任务要求 输入串长度作为总页框数目,补充程序完成OPT算法。 2.3算法思路 OPT算…...