【Git】全面详细了解开发者必备工具Git(2.0)

news2025/1/2 2:59:01

csdn动态图标

✍️ 作者简介: 前端新手学习中。

💂 作者主页: 作者主页查看更多前端教学

🎓 专栏分享:css重难点教学   Node.js教学 从头开始学习   ajax学习

文章目录

  • 学习目标
  • 起步——关于版本的控制
    •   文件的版本
    •   版本控制软件
    •   使用版本控制软件的好处
    •   版本控制系统的分类
    •   本地版本控制系统
    •   集中化的版本控制系统
    •   分布式的版本控制系统
  • Git基础概念
    •  什么是Git
    •  Git的特性
    •  SVN的差异比较
    •  Git的记录快照
    •  近乎所有的操作都是本地执行
    •  Git中的三个区域
    •  基本的Git工作流程
  • 安装并配置Git
    •  下载
    •  配置用户信息
    •  通过命令快速检查用户配置信息
  • Git的操作与使用
    •  获取帮助信息
    •  获取Git仓库的两种方式
    •  在现有目录中初始化仓库
    •  工作区中文件的四种状态
    •  检查文件的状态
    •  跟踪新文件
    •  显示文件
    •  提交更新
    •  对已提交的文件进行修改
    •  暂存和提交已修改的文件
    •  撤销对文件的修改
    •  向暂存区中一次性添加多个文件
    •   取消暂存的文件
    •   跳过使用暂存区域
    •   移除文件
    •   忽略文件
    •   查看提交历史
    •  vim
    •   回退到指定的版本
    •   远程仓库操作
    •   小结
  • 分支
    •   创建查看切换分支
    •   合并分支
    •   删除分支
    •   分支合并冲突问题
  • 团队协作
    •  团队协作的分支管理
    •  跨团队协作

学习目标

  • 能够掌握Git基本命令的使用
  • 能够使用Github创建和维护远程仓库
  • 能够掌握Git分支的基本使用

起步——关于版本的控制

  文件的版本

在这里插入图片描述

  版本控制软件

在这里插入图片描述

  使用版本控制软件的好处

在这里插入图片描述

  版本控制系统的分类

在这里插入图片描述

  本地版本控制系统

在这里插入图片描述

  集中化的版本控制系统

在这里插入图片描述

  分布式的版本控制系统

在这里插入图片描述

Git基础概念

 什么是Git

Git是一个开源的分布式版本控制系统,是目前世界上最先进,最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。
特点:项目越大越复杂,协同开发者越多,越能体现出Git的高性能和高可用性。

 Git的特性

Git之所以快速和高效,主要依赖于它的如下两个特效:

  1. 直接记录快照,而非差异比较。
  2. 近乎所有操作都是本地执行

 SVN的差异比较

传统的版本控制系统是基于差异的版本控制,它们存储的是一组基本文件和每个文件随时间逐步累计的差异。

在这里插入图片描述
记录版本差异

 Git的记录快照

Git快照是在原有文件版本的基础上重新生成一份新文件,类似于备份,为了效率,如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。

在这里插入图片描述

 近乎所有的操作都是本地执行

在这里插入图片描述

 Git中的三个区域

使用Git管理的项目,拥有三个区域,分别是工作区,暂存区,Git仓库,这三个工作区还对应了三种状态,分别是已修改,已暂存,已提交。

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

 基本的Git工作流程

在这里插入图片描述

  1. 在工作区中修改文件。
  2. 将你想要下次提交的更改进行暂存。
  3. 提交更新,找到暂存区的文件,以快照形式永久存储。

安装并配置Git

 下载

下载地址
一直点下一步,安装就可以了。在这里插入图片描述
安装成功
在这里插入图片描述

 配置用户信息

安装完Git之后,要做的第一件事就是设置自己的用户名和邮件地址,因为通过Git对项目进行版本管理的时候,Git需要使用这些基本信息,来记录是谁对项目进行了操作。

在这里插入图片描述

我们进行全局配置用户名和邮箱,(配置一次就好,用户名邮箱自定义即可不用跟什么一样,只是提交版本的时候展示的相关信息而已)

在这里插入图片描述

通过 全局配置的用户名和邮箱地址,会被写入到C:/Users/用户名文件夹/.gitconfig文件中,这个文件是Git的全局配置文件,配置一次即可永久生效。
可以使用记事本打开此文件,来查看对Git进行了哪些全局操作。

在这里插入图片描述

 通过命令快速检查用户配置信息

除了使用记事本查看全局的配置信息外,还可以运行如下的终端命令,快速的查看Git的全局配置信息。

查看所有的全局配置项

git config --list --global

查看指定的全局配置项

git config user.name
git config user.email

在这里插入图片描述

Git的操作与使用

 获取帮助信息

可以使用git help 命令,无需联网即可在浏览器中打开帮助手册,

例如:
查看config命令相关信息

在这里插入图片描述
会弹出浏览器 里面有详细的命令教学。
在这里插入图片描述
也可以 使用 git config -h 来在终端中弹出简介帮助。
在这里插入图片描述

 获取Git仓库的两种方式

  1. 将尚未进行版本控制的本地目录转换为Git仓库
  2. 从其他服务器克隆一个已存在的Git仓库

以上两种方式都能够在自己的电脑上得到一个可用的Git仓库。

 在现有目录中初始化仓库

如果自己有一个尚未进行版本控制的项目目录,想要用Git来控制它,需要执行如下两个步骤:
3. 在项目跟目录中,通过鼠标右键打开“Git Bash”。
4. 执行 git init命令将当前的目录转化为Git仓库,
git init命令会创建一个名为.git的隐藏目录,这个.git目录就是当前项目的Git仓库,里面包含了初始的必要文件,这些文件是Git仓库的必要组成部分。
在这里插入图片描述

在这里插入图片描述

 工作区中文件的四种状态

工作区中的每一个文件可能有四种状态,这四种状态共分为两大类。

在这里插入图片描述
Git操作的最终结果:让工作区中的文件都处于“未修改”的状态。

 检查文件的状态

可以使用git status命令查看文件处于什么状态。
  查看指定文件状态
git status 文件名
查看所有文件状态
git status 
查看所有文件状态(方便显示)
git status -s
```![在这里插入图片描述](https://img-blog.csdnimg.cn/756dafcf4c25448aa65dbd8b5b811427.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/ec492e3f61f24f8fa0c6b3c08426a0e9.png)
untracked files 表示未被跟踪的文件,下面显示gehangbianhuan.html,表示此文件未被跟踪,意味着Git之前的快照提交中没有这个文件夹,Git不会自动纳入跟踪范围,除非明确地告诉它,我需要使用git跟踪管理该文件。
**用简洁的方式检查文件状态**

```sql
git status -s

在这里插入图片描述

 跟踪新文件

使用命令git add开始跟踪一个文件,git add <文件名>,跟踪之后我们可以在使用git status命令来查看。
跟踪指定文件 跟踪之后自动添加到暂存区 修改文件后执行此命令放到暂存区
git add 文件名
//跟踪全部文件
git add.
提交所有被删除和修改的文件到数据暂存区
git add -u 等价于 git add –update
提交所有被删除、被替换、被修改和新增的文件到数据暂存区
git add -A 等价于 git add –all

在这里插入图片描述
表示文件已经暂存。

 显示文件

显示文件
ls
显示所有文件 包括隐藏
ls -a
查看文件内容
cat 文件名

 提交更新

现在暂存区中有一个gehangbianhuan.html文件等待被提交到Git仓库中进行保存。可移植性git commit命令进行提交,其中-m选项后面是本次的提交消息,用来对提交的内容做进一步的描述。

在这里插入图片描述
使用git status命令再次查看文件状态
在这里插入图片描述
显示没有任何的修改,没有任何文件需要提交。
在这里插入图片描述

 对已提交的文件进行修改

目前,gehangbianhuan.html文件已经被Git跟踪,并且工作区Git仓库中的gehangbianhuan.html文件内容保持一致,修改了工作区中gehangbianhuan.html的内容之后,再次运行git status命令,会看到如下内容。

在这里插入图片描述

文件被跟踪了,跟踪了然后咱们修改了文件,所以提示修改了但是没有暂存。

 暂存和提交已修改的文件

目前,工作区中的gehangbianhuan文件已经被修改,如果要暂存这次数据,我们还得需要git add这个命令,这个命令其实是多功能命令,主要有以下三个功能。

  1. 可以用他来跟踪文件,跟踪文件后会暂存当前内容。
  2. 跟踪文件修改之后,我们可以再次使用这个命令进行暂存。
  3. 把有冲突的文件标记为已解决文件。

我们这里就是用的第二个功能。
在这里插入图片描述
使用git commit 再次提交文件
在这里插入图片描述

 撤销对文件的修改

撤销对文件的修改指的是:把对工作区中对应文件的修改,还原成Git仓库中之前保存的版本。
撤销对文件的修改 (没有提交到暂存区)
git checkout – 文件名
操作的结果:所有的修改会丢失,且无法恢复!危险性比较高,请慎重操作!

在这里插入图片描述
我们先对文件进行修改,修改保存后,撤销掉之前的修改,类似于撤回,它会选择git中提交的最新版本,覆盖工作区中的修改。
在这里插入图片描述

 向暂存区中一次性添加多个文件

如果需要被暂存的文件个数比较多,可以使用如下的命令,一次性将所有的新增和修改过的文件加入暂存区。 命令:git add .(点),使用此命令可以将当前文件内的所有文件添加到暂存区,这个命令很常用。

新建了三个文件,并没有跟踪放到暂存区。
在这里插入图片描述
我们全部跟踪并放到暂存区。
在这里插入图片描述

  取消暂存的文件

如果需要从暂存区中移除对应的文件,可以使用如下的命令:
git reset <文件名>。如果取消所有文件,同样是用.(点)。
取消暂存的文件
git reset <文件名>
取消所有暂存的文件
git reset .
将文件从暂存区移除,同时取消跟踪
git rm --cached 文件名

在这里插入图片描述

  跳过使用暂存区域

Git标准的工作流程是工作区→暂存区→Git仓库,但有时候这么做略显繁琐,此时可以跳过暂存区,工作区中的修改提交到Git仓库,这时候Git工作的流程简化为了工作区→Git仓库。
Git提供了一个跳过使用暂存区域的方式,只要在提交的时候,给git commit加上-a选项,Git就会自动把所有已经跟踪过的文件暂存起来一并提交,修改的文件从而跳过git add步骤。

在这里插入图片描述

  移除文件

从Git仓库中移除文件的方式有两种

  1. 从Git仓库和工作区中同时移除对应的文件
    git rm -f index.js
    在这里插入图片描述
  1. 只从Git仓库中移除指定的文件,但保留工作区中对应的文件
    git rm --cached index.js
    在这里插入图片描述

解析:两个绿色的D表示被打上了删除标记,当下一次提交的时候就会从仓库中删除,js文件执行命令后工作区中的js文件被删除,仓库中的js被打上了删除标记,css执行命令后,css被打上了删除标记,工作区中的css没被删除而是显示了未跟踪状态,但我们使用提交命令(提交所有被跟踪过的文件)后,就将打上删除标记的两个文件从仓库中删除了,index.css没有被跟踪,所以提交命令没有做任何的提交操作。

3. 删除文件夹
 
git rm -r 文件夹名 --cached

都需要进行一次新的提交才会进行删除仓库文件 第一次会删除工作区中的文件 然后给要删除的仓库文件打上删除记号

  忽略文件

一般我们总会有些文件无需纳入Git的管理,也不希望它们总出现在未跟踪文件列表。在这种情况下,我们可以创建一个名为.gitignore的配置文件,列入要忽略的文件的匹配模式。

文件 .gitignore的格式规范如下:

  1. 以#开头的是注释
  2. 以/结尾的是目录
  3. 以/开头防止递归
  4. 以!开头表示取反
  5. 可以使用glob模式进行文件和文件夹的匹配(glob指简化了的正则表达式)
    在这里插入图片描述

详情请看:正则表达式详情
在这里插入图片描述
注意:命名文件的时候不能有文件名只能有后缀名
在这里插入图片描述
新建了个test在这里插入图片描述
我们查看文件状态 发现没有 说明忽略成功了
在这里插入图片描述

  查看提交历史

如果希望回顾项目的提交历史,可以使用git log这个简单且有效的命令,
查看本地仓库提交历史 只能显示到当前主分支
git log
查看本地仓库的代码操作历史
git reflog

在这里插入图片描述
在这里插入图片描述
按q即可退出查看。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

 vim

提交没写上相关信息,vim系统 误入

摁i键切换成插入模式 可以进行书写
  退出的话 摁esc  然后冒号 wq退出

  回退到指定的版本

在这里插入图片描述

这个回退是回退到工作区
回退到上一次的提交版本
git reset --hard HEAD^
回退到前两次的提交版本
git reset --hard HEAD^^
git reset --hard HEAD~2
回退版本之后本地代码也会相应进行回退,

如果想要退回去 
我们可以通过 git reflog查看之前的版本号
然后再使用 git reset --hard 版本号 

下面这个回退是回退到暂存区 比如说你提交信息写错了想重新写可以进行回退  重新提交写好提交信息  本地文件不会改变,回退到提交到暂存区时的状态

git reset --soft HEDA

//下面这个回退 是撤销 版本 同时会生成一个新的版本
比如 git reyert HEAD 撤销当前版本  那么本地内容就会回退到上个版本  同时当前版本还会存在  并且还会生成一个新的版本  需要你在vim中填写版本信息 也可以在HEAD后面书写  
意思就是说  假如你的当前版本是2 撤销当前版本  会让你的本地文件内容回退到版本1  同时会生成一个版本3     版本一和版本3的内容是相同的  ,版本2不会消失。
撤销当前版本  就相当于把上一个版本重新发布了一次

git reyert HEAD 版本号(前六个字)

  远程仓库操作

添加远程仓库
git remote add origin(别名) 仓库地址

查看远程仓库
git remote -v

复制远程仓库代码

git clone 仓库网址

删除创建的别名
git remote remove origin别名

将本地仓库 上传到 远程仓库

git push origin(别名) master:master(将本地主分支master上传到远程主分支master,可以直接简写成master(类似对象属性的简写))  加上-f 为强制提交  慎用 
我们还可以 git push -u origin(别名) master   将 -u  后面两个变量变成了默认值,以后可以直接git push  默认就是 -u设置的内容

注册
注册一个github或gitee,gitcode等任意账号,操作流程页面UI几乎都是没区别的,注册完之后创建一个仓库。这里就不演示了。
拉代码和复制的区别
git clone和git pull的主要区别在于它们的目的。如果你想要完整地复制一个存储库到本地计算机,则应该使用git clone。如果你只想要获取最新的更新,则应该使用git pull。

  小结

  1. 初始化Git仓库的命令
    • git init
  2. 添加到暂存区
    • git add .
  3. 查看文件状态的命令
    • git status
    • git status -s
  4. 一次性将文件加入暂存区的命令
    • git add
  5. 将暂存区的文件提交到Git仓库的命令
    • git commit -m “”提交信息“”

分支

  创建查看切换分支

查看本地分支
 git branch

查看所有分支
git branch -a

 常看所有远程分支
 git branch -r

 创建分支    创建后当前分支不会改变 不会切换到新分支  加上-b会切换到新分支 中括号是可选
 创建一个新分支会将当前分支的内容复制一份儿 ,  后续的修改两个分支互不影响
 git branch【-b】 分支名

切换分支     每次切换分支之前记得先提交到仓库  不要忘了 
git checkout 分支名

  合并分支

a如果要把b的内容合并过来  那么久切换到a分支  使用git merge 分支b
git merge 合并到的分支名 

  删除分支

合并分支后  内容一样  可以删除一个分支

git branch -d 分支名

删除远程分支
git push origin --delete 分支名

  分支合并冲突问题

不同分支修改了同一文件的同一行代码才会产生冲突,但是还有其他原因:不同分支修改的是同一文件的相邻行。这也会产生冲突。总之同一个文件 尽量不要再不同分支中同时修改。
当你在两个分支中修改相同文件的话,就会遇到冲突问题,不知道应该采取谁的内容,需要手动解决。

首先 a b分支都对相同文件的内容进行了的修改    然后我我们执行git merge 分支b  将b分支合并到a分支 就会产生冲突  就会是一个冲突状态   需要我们打开文件夹 进行手动选择 这时候的冲突文件会有两边双方的内容  需要将不需要的内容删除保留下想要的内容。 然后再次提交add,上传commit即可。
a 分支就是筛选后的内容 b分支还是原来的内容

团队协作

a和b两个合作开发人员 都从gitee上面复制了一个项目, b先完成了自己添加的部分 然后上传了 上去,上传成功了,等a完成了自己添加的部分上传的时候 上传失败了,因为现在的远程仓库之前被更新了,和你当时使用的内容不一样,所以我们需要养成一个习惯 在push之前先pull更新一下,再次提交就好了,如果pull的时候遇到代码冲突,就再手动解决一下就好。

 团队协作的分支管理

上传本地其他分支到远程仓库中 需要切换到当前分支
git push origin 分支名:分支名(如果名称相同可简写成 分支名)

克隆只能克隆主分支 我们可以pull将远程仓库其他分支拉去到本地仓库
git pull origin 分支名:分支名(如果名称相同可简写成 分支名)
拉去完远程仓库分支之后 我们可以直接切换 git checkout 分支 他就会根据远程仓库的分支弄到本地仓库

删除远程分支
git push origin --de lete 分支名
也可以上传到一个空分支就等同于删除
git push origin :分支名

 跨团队协作

在网页中先fork一个相同的项目, 然后进行本地的代码修改 并上传到远程,然后再将自己的修改pull requests 发送请求给原创作者

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 23.04 安装 Conda

Ubuntu 23.04 安装 Conda 1. 下载 Conda 安装脚本2. 运行安装脚本3. 安装完成后&#xff0c;关闭当前终端并打开新终端&#xff0c;这将激活 Conda4. 更新 Conda 至最新版本5. 添加必要的 Conda 通道以获取更多软件包6. 测试是否安装成功 1. 下载 Conda 安装脚本 wget https:/…

[Gitops--10]微服务项目部署流水线编写

微服务项目部署流水线编写 1. 部署环境说明 序号管理地址作用1192.168.31.199GitLab2192.168.31.104Harbor3192.168.31.131kubesphere 1.1 GitLab 1.2 流水线 1.2.1 创建流水线 1.2.2 创建凭证 1.2.3 创建kubeconfig凭证 这里需要注意的是,config中如果使用的是域名,那么需…

JavaWeb ( 三 ) Web Server 服务器

1.5.Web Server服务器 Web Server 服务器是一种安装在服务器主机上的应用程序, 用于处理客户端(Web浏览器)的请求&#xff0c;并返回响应内容。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流。 简单说就是将http协议的信息翻译成对应开发语言可以处理的对象信息。…

lombok常用的注解及使用方法

lombok是⼀种简化源码提⾼编程效率的⼯具&#xff0c;⽤于⽣成常⽤的代码。 如何使用lombok 引⼊依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</ver…

【ChatGPT】吴恩达『提示工程』课程完全笔记下载

版权说明&#xff1a;『ChatGPT Prompt Engineering for Developers』是DeepLearning.AI出品的免费课程&#xff0c;版权属于DeepLearning.AI(https://www.deeplearning.ai/)。 本文是对该课程内容的翻译整理&#xff0c;只作为教育用途&#xff0c;不作为任何商业用途。 吴恩达…

Activiti7流程操作详解

一、Activiti流程操作步骤 定义流程&#xff0c;按照BPMN的规范&#xff0c;使用流程定义工具&#xff0c;用流程符号把整个流程描述出来 部署流程&#xff0c;把画好的流程定义文件&#xff0c;加载到数据库中&#xff0c;生成表的数据 启动流程&#xff0c;使用java代码来操…

4D成像雷达风口,谁在快速崛起?

4D成像雷达正进入规模量产落地的关键窗口期。 高工智能汽车注意到&#xff0c;毫米波雷达的发展某种程度上可以分为两个阶段&#xff1a;第一个阶段&#xff0c;传统毫米波雷达时代&#xff0c;市场基本被博世、大陆、安波福等国际Tier1巨头把持&#xff0c;市场格局长期稳固&…

树形结构的三级分类如何实现?

概述&#xff1a; 本三级联动分类服务端使用的是: Springboot MyBatis-plus&#xff0c;前端使用的是&#xff1a;VueElementUI&#xff0c;树形控件使用的是el-tree。本三级联动分类可以把任一拖拽子项到其它目录&#xff0c;可以添加、编辑、删除分类。 效果图&#xff1a…

编译原理笔记(一)引论

文章目录 1.什么是编译程序2.编译过程和编译程序的结构2.1.编译过程概述2.2.编译程序的结构2.3.编译阶段的组合 3.解释程序和一些软件工具3.1.解释程序3.2.处理源程序的软件工具 4.PL/0语言编译系统 学习总结&#xff1a;这一部分是编译原理的绪论部分内容&#xff0c;对编译程…

Tokenizer分词

分词的一般流程 在使用神经网络处理自然语言处理任务时&#xff0c;我们首先需要对数据进行预处理&#xff0c;将数据从字符串转换为神经网络可以接受的格式&#xff0c;一般会分为如下几步&#xff1a; &#xff08;1&#xff09;分词&#xff1a;使用分词器对文本数据进行分…

STM32CUBEMX 待机模式最简单的RTC定时唤醒(低功耗电池产品必备)

文章意义&#xff1a; 看到很多技术帖子讲述RTC定时唤醒功能的时候&#xff0c;老是需要去读取当前时间&#xff0c;再设定下一个闹钟唤醒时间&#xff0c;无形中多了很多变量和操作。所以我决定分享一种简单的RTC定时唤醒方法&#xff0c;适合于不需要实现具体时间获取的场合…

企业遇到知识管理困境该怎么办?这里有解决方案!寻找Baklib

随着企业业务不断扩大&#xff0c;员工数量的增加&#xff0c;知识管理成为了企业面临的一个重要问题。企业需要管理大量的知识&#xff0c;如产品手册、流程规范、客户信息等&#xff0c;这些知识对企业的生产和经营至关重要。但是&#xff0c;如何高效地管理这些知识&#xf…

LeetCode_双指针_中等_24.两两交换链表中的节点

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&a…

第40讲:Python for-in循环语句使用索引遍历序列

文章目录 方法一&#xff1a;遍历的是序列的元素方法二&#xff1a;遍历的是序列的索引方法三&#xff1a;while循环遍历实现方法四&#xff1a;调用内置函数enumerate实现1.什么是enumerate函数2.调用内置函数enumerate实现索引遍历序列 如果在遍历序列的过程中&#xff0c;需…

国产高端GPU,国产替代加速(附国产厂家汇总)

前言 2022年8月9日&#xff0c;壁仞科技在上海发布首款通用GPU芯片BR100&#xff0c;标志着中国企业第一次打破了此前一直由国际巨头保持的通用GPU全球算力纪录&#xff1b; 8月31日&#xff0c;美国政府命令芯片厂商英伟达&#xff08;NVIDIA&#xff09;以及超威半导体&…

借助 Google Play 游戏电脑版 Com2uS 为用户打造多平台无缝体验

作者 / Google Play 游戏总监 Arjun Dayal 吸引潜在用户在 PC 端畅享游戏 《魔灵召唤&#xff1a;克罗尼柯战记》是韩国游戏开发商 Com2uS 于 2023 年 3 月面向全球发布的一款移动端大型多人在线角色扮演游戏。迄今为止&#xff0c;《魔灵召唤》在全球的下载量超过 1.8 亿&…

Aztec:混合zkRollup,而非zkEVM

1. 引言 Aztec zkRollup为混合zkRollup&#xff1a; 支持通用私有计算的加密zkRollup&#xff08;命名为Aztec&#xff09;&#xff1a;构建trustless、可扩展的、去中心化的Layer2 zkRollup&#xff0c;同时支持private smart contract execution。同时支持public state和pr…

C++ Primer阅读笔记--参数传递

目录 1--三种基本传递方式 2--数组形参 3--main函数传递参数 4--传递可变形参 1--三种基本传递方式 ① 值传递&#xff1a; 使用值传递时&#xff0c;初始值会拷贝给变量&#xff0c;对变量的改动不会改变初始值的值&#xff1b; ② 指针传递&#xff1a; 使用指针传递时&…

Mysql 查询性能优化

查看数据库用户连接数量 show processlist;分析表结构 索引 show index from conference;查询锁状态 show status like %lock%;是否开启慢查询 show variables like %slow_query_log%;日志查询默认情况下&#xff1a;slow_query_log的Value为OFF 如要开启慢查询日志&#…

2023最新软件测试面试题汇总

常见的面试题汇总 1、你做了几年的测试、自动化测试&#xff0c;说一下 selenium 的原理是什么&#xff1f; 我做了五年的测试&#xff0c;1年的自动化测试&#xff1b; selenium 它是用 http 协议来连接 webdriver &#xff0c;客户端可以使用 Java 或者 Python 各种编程语言…