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

理解 Git 的三个工作区:工作区、暂存区和版本库

文章目录

  • 创建 Git 本地仓库
  • 配置Git
  • 认识⼯作区、暂存区、版本库
    • 添加⽂件--场景
    • 查看 .git ⽂件
    • 添加⽂件--场景⼆

创建 Git 本地仓库

要提前说的是,仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来。创建⼀个 Git 本地仓库对应的命令为 git init ,注意命令要在⽂件⽬录下执⾏,例如:

[XMLife@VM-8-6-centos Git_code]$ pwd
/home/XMLife/Git_code
[XMLife@VM-8-6-centos Git_code]$ git init
Initialized empty Git repository in /home/XMLife/Git_code/.git/
[XMLife@VM-8-6-centos Git_code]$ ll -a
total 12
drwxrwxr-x 3 XMLife XMLife 4096 Sep 19 09:30 .
drwx------ 5 XMLife XMLife 4096 Sep 19 09:29 ..
drwxrwxr-x 7 XMLife XMLife 4096 Sep 19 09:30 .git

我们发现,当前⽬录下多了⼀个 .git 的隐藏⽂件, .git ⽬录是 Git 来跟踪管理仓库的,不要⼿动
修改这个⽬录⾥⾯的⽂件,不然改乱了,就把 Git 仓库给破坏了.如果大家感兴趣可以打开看看.


配置Git

当首次安装配置 Git 后⾸先要做的事情是设置自己的 ⽤⼾名称e-mail 地址,这是⾮常重要的。如果忘记配置会出现不必要的问题,配置命令为

git config [--global] user.name "Your Name" 
git config [--global] user.email "email@example.com" 
# 把 Your Name 改成你的昵称
# 把 email@example.com 改成邮箱的格式,只要格式正确即可

其中 --global 是⼀个可选项。如果使⽤了该选项,表⽰这台机器上所有的 Git 仓库都会使⽤这个
配置。如果你希望在不同仓库中使⽤不同的 name 或 e-mail ,可以不要 --global 选项,但要
注意的是,执⾏命令时必须要在仓库⾥。
查看配置命令为:

git config -l

删除对应的配置命令为:

git config [--global] --unset user.name
git config [--global] --unset user.email

认识⼯作区、暂存区、版本库

  • ⼯作区:是在电脑上你要改动你的代码或⽂件的⽬录。
  • 暂存区:英⽂叫 stage 或 index。⼀般存放在 .git ⽬录下的 index ⽂件(.git/index)中,我们把暂存区有时也叫作索引(index)。
  • 版本库:⼜名仓库,英⽂名 repository 。⼯作区有⼀个隐藏⽬录 .git ,它不算⼯作区,⽽
    是 Git 的版本库。这个版本库⾥⾯的所有⽂件都可以被 Git 管理起来,每个⽂件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

下⾯这个图展⽰了⼯作区、暂存区和版本库之间的关系:
在这里插入图片描述

  • 图中左侧为⼯作区,右侧为版本库。Git 的版本库⾥存了很多东西,其中最重要的就是暂存区。
  • 在创建 Git 版本库时,Git 会为我们⾃动创建⼀个唯⼀的 master 分⽀,以及指向 master 的⼀个指针叫 HEAD。
  • 当对⼯作区修改(或新增)的⽂件执⾏ git add 命令时,暂存区⽬录树的⽂件索引会被更新。
  • 当执⾏提交操作 git commit 时,master 分⽀会做相应的更新,可以简单理解为暂存区的⽬录
    树才会被真正写到版本库中。

在这里插入图片描述

由上述描述我们便能得知:通过新建或粘贴进⽬录的⽂件,并不能称之为向仓库中新增⽂件,⽽只是在⼯作区新增了⽂件。必须要通过使⽤ git add 和 git commit 命令才能将⽂件添加到仓库中
进⾏管理!!!

  • Git 追踪管理的其实是修改,而不是文件

添加⽂件–场景

在包含 .git 的⽬录下新建⼀个 Fileme ⽂件,我们可以使⽤ git add 命令可以将⽂件添加到暂存区.

  • 添加⼀个或多个⽂件到暂存区: git add [file1] [file2] ...
  • 添加指定⽬录到暂存区,包括⼦⽬录: git add [dir]
  • 添加当前⽬录下的所有⽂件改动到暂存区: git add .

再使⽤ git commit 命令将暂存区内容添加到本地仓库中:

  • 提交暂存区全部内容到本地仓库中: git commit -m "message"
  • 提交暂存区的指定⽂件到仓库区: git commit [file1] [file2] ... -m "message"

注意 git commit 后⾯的 -m 选项,要跟上描述本次提交的 message,由⽤⼾⾃⼰完成,这部分内
容绝对不能省略,并要好好描述,是⽤来记录你的提交细节,是给我们开发人员看的.

git commit 命令执⾏成功后会告诉我们,1个⽂件被改动(就是我们新添加的ReadMe⽂件),插
⼊了两⾏内容(ReadMe有两⾏内容)。如下:

[XMLife@VM-8-6-centos Git_code]$ vim Fileme
[XMLife@VM-8-6-centos Git_code]$ cat Fileme
hello git
[XMLife@VM-8-6-centos Git_code]$ git add Fileme
[XMLife@VM-8-6-centos Git_code]$ git commit -m "commit my first file"
[master (root-commit) 05f37ff] commit my first file1 file changed, 1 insertion(+)create mode 100644 Fileme

我们还可以多次 add 不同的⽂件,⽽只 commit ⼀次便可以提交所有⽂件,是因为需要提交的⽂件是通通被 add 到暂存区中,然后⼀次性 commit 暂存区的所有修改。如下:

[XMLife@VM-8-6-centos Git_code]$ touch file1 file2 file3
[XMLife@VM-8-6-centos Git_code]$ git add file1 file2 file3
[XMLife@VM-8-6-centos Git_code]$ git commit -m "add 3 file"
[master 1f3d1a3] add 3 file3 files changed, 0 insertions(+), 0 deletions(-)create mode 100644 file1create mode 100644 file2create mode 100644 file3

截⾄⽬前为⽌,我们已经更够将代码直接提交⾄本地仓库了。我们可以使⽤ git log 命令,来查看下历史提交记录.如下:

[XMLife@VM-8-6-centos Git_code]$ git log
commit 1f3d1a3b718a4eab4fb951808b20a9545cbd54a8
Author: XMLife <1277707726@qq.com>
Date:   Tue Sep 26 09:29:33 2023 +0800add 3 filecommit 05f37ff848941e9b4c53b0e8daf604f4e18c9f2f
Author: XMLife <1277707726@qq.com>
Date:   Tue Sep 26 08:46:37 2023 +0800commit my first file

该命令显⽰从最近到最远的提交⽇志,并且可以看到我们 commit 时的⽇志消息。
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上 --pretty=oneline 参数:如下:

[XMLife@VM-8-6-centos Git_code]$ git log --pretty=oneline
1f3d1a3b718a4eab4fb951808b20a9545cbd54a8 add 3 file
05f37ff848941e9b4c53b0e8daf604f4e18c9f2f commit my first file

需要说明的是,我们看到的⼀⼤串类似1f3d1a…05f37ff 的是每次提交的 commit id (版本
号),Git 的 commit id 不是1,2,3……递增的数字,⽽是⼀个 SHA1加密 计算出来的⼀个⾮常⼤的数字,⽤⼗六进制表⽰(你看到的 commit id 和我的肯定不⼀样,以你⾃⼰的为准)


查看 .git ⽂件

[XMLife@VM-8-6-centos Git_code]$ ll -al
total 16
-rw-rw-r-- 1 XMLife XMLife    0 Sep 26 09:28 file1
-rw-rw-r-- 1 XMLife XMLife    0 Sep 26 09:28 file2
-rw-rw-r-- 1 XMLife XMLife    0 Sep 26 09:28 file3
-rw-rw-r-- 1 XMLife XMLife   10 Sep 26 08:45 Fileme
drwxrwxr-x 8 XMLife XMLife 4096 Sep 26 09:29 .git

.git 是我们的版本库 (仓库)
其余文件是我们的工作区.

在这里插入图片描述
先来看看我们的 .git 的⽬录结构:

[XMLife@VM-8-6-centos Git_code]$ tree .git/
.git/
|-- branches
|-- COMMIT_EDITMSG
|-- config
|-- description
|-- HEAD
|-- hooks
|   |-- applypatch-msg.sample
|   |-- commit-msg.sample
|   |-- post-update.sample
|   |-- pre-applypatch.sample
|   |-- pre-commit.sample
|   |-- prepare-commit-msg.sample
|   |-- pre-push.sample
|   |-- pre-rebase.sample
|   `-- update.sample
|-- index
|-- info
|   `-- exclude
|-- logs
|   |-- HEAD
|   `-- refs
|       `-- heads
|           `-- master
|-- objects
|   |-- 05
|   |   `-- f37ff848941e9b4c53b0e8daf604f4e18c9f2f
|   |-- 1f
|   |   `-- 3d1a3b718a4eab4fb951808b20a9545cbd54a8
|   |-- 2a
|   |   `-- 318fbaab981ff723a3621e39c862bbfa0b8082
|   |-- 8d
|   |   `-- 0e41234f24b6da002d962a26c2495ea16a425f
|   |-- e6
|   |   `-- 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
|   |-- ef
|   |   `-- 877764d92409acd539cdf1408ddb8e859d7785
|   |-- info
|   `-- pack
`-- refs|-- heads|   `-- master`-- tags18 directories, 24 files
  1. index 就是我们的暂存区,add 后的内容都是添加到这⾥的.
  2. HEAD 就是我们的默认指向 master 分⽀的指针.
[XMLife@VM-8-6-centos Git_code]$ cat .git/HEAD
ref: refs/heads/master

⽽默认的 master 分⽀,其实就是

[XMLife@VM-8-6-centos Git_code]$ cat .git/refs/heads/master
1f3d1a3b718a4eab4fb951808b20a9545cbd54a8

打印的 1f3d1a3b718a4eab4fb951808b20a9545cbd54a8是什么东西呢?保存的就是当前最新的 commit id

  1. objects 为 Git 的对象库,⾥⾯包含了创建的各种版本库对象及内容。当执⾏ git add 命令
    时,暂存区的⽬录树被更新,同时⼯作区修改(或新增)的⽂件内容被写⼊到对象库中的⼀个新的对象中,就位于 “.git/objects” ⽬录下,让我们来看看这些对象有何⽤处:
[XMLife@VM-8-6-centos Git_code]$ ls .git/objects/
05  1f  2a  8d  e6  ef  info  pack

查找 object 时要将 commit id 分成2部分,其前2位是⽂件夹名称,后38位是⽂件名称。
找到这个⽂件之后,⼀般不能直接看到⾥⾯是什么,该类⽂件是经过 sha (安全哈希算法)加密过的⽂件,好在我们可以使⽤ git cat-file 命令来查看版本库对象的内容:

[XMLife@VM-8-6-centos Git_code]$ git cat-file -p 1f3d1a3b718a4eab4fb951808b20a9545cbd54a8tree ef877764d92409acd539cdf1408ddb8e859d7785
parent 05f37ff848941e9b4c53b0e8daf604f4e18c9f2f
author XMLife <1277707726@qq.com> 1695691773 +0800
committer XMLife <1277707726@qq.com> 1695691773 +0800add 3 file# 这就是我们最近⼀次的提交!

其中,还有⼀⾏ tree ef877764d92409acd539cdf1408ddb8e859d7785 ,我们使⽤同样的⽅
法,看看结果:

[XMLife@VM-8-6-centos Git_code]$ git cat-file -p ef877764d92409acd539cdf1408ddb8e859d7785
100644 blob 8d0e41234f24b6da002d962a26c2495ea16a425f	Fileme
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391	file1
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391	file2
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391	file3

在看 Fileme 对应的 8d0e41234f24b6da002d962a26c2495ea16a425f :

[XMLife@VM-8-6-centos Git_code]$ git cat-file -p 8d0e41234f24b6da002d962a26c2495ea16a425f
hello git
# 这是我们对ReadMe做的修改!!被git记录了下来!!

回过头我们在看看 parent 05f37ff848941e9b4c53b0e8daf604f4e18c9f2f

[XMLife@VM-8-6-centos Git_code]$ git cat-file -p 05f37ff848941e9b4c53b0e8daf604f4e18c9f2f
tree 2a318fbaab981ff723a3621e39c862bbfa0b8082
author XMLife <1277707726@qq.com> 1695689197 +0800
committer XMLife <1277707726@qq.com> 1695689197 +0800commit my first file

他保存的是我们上一次提交的记录

  • 总结
    在本地的 git 仓库中,有⼏个⽂件或者⽬录很特殊
  • index: 暂存区, git add 后会更新该内容。
  • HEAD: 默认指向 master 分⽀的⼀个指针。
  • refs/heads/master: ⽂件⾥保存当前 master 分⽀的最新 commit id 。
  • objects: 包含了创建的各种版本库对象及内容,可以简单理解为放了 git 维护的所有修改。

添加⽂件–场景⼆

我们已经清楚了如何向仓库中添加⽂件,并且对于⼯作区、暂存区、版本库也有了⼀定
的认识。那么我们再展⽰⼀种添加⽂件的场景,能加深对⼯作区、暂存区、版本库.

[XMLife@VM-8-6-centos Git_code]$ touch file4
[XMLife@VM-8-6-centos Git_code]$ git add file4
[XMLife@VM-8-6-centos Git_code]$ touch file5
[XMLife@VM-8-6-centos Git_code]$ git commit -m "add file"
[master bcadde4] add file1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 file4

提交后发现打印了 1 file changed, 0 insertions(+), 0 deletions(-) ,意思是只有⼀个⽂件改变了,这时我们提出了疑问,不是新增了两个⽂件吗?
再来回忆下, git add 是将⽂件添加到暂存区, git commit 是将暂存区的内容添加到本地仓库
中。由于我们并没有使⽤ git add file5 ,file5 就不在暂存区中维护,所以我们 commit 的时候
其实只是把已经在暂存区的 file4 提交了,⽽遗漏了⼯作区的 file5。如何提交 file5 呢?很简单,再次add , commit 即可,

相关文章:

理解 Git 的三个工作区:工作区、暂存区和版本库

文章目录 创建 Git 本地仓库配置Git认识⼯作区、暂存区、版本库添加⽂件--场景查看 .git ⽂件添加⽂件--场景⼆ 创建 Git 本地仓库 要提前说的是&#xff0c;仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制&#xff0c;就必须先创建⼀个仓库出来。创建⼀个 Gi…...

web前端基础训练-----创建用户反馈表单

1&#xff0c;实验代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>用户反馈表单</title></head><body><form><fieldset><h1>用户反馈</h1><hr/><h4>亲爱的用…...

Scrum 敏捷管理流程图及敏捷管理工具

​敏捷开发中的Scrum流程通常可以用一个简单的流程图来表示&#xff0c;以便更清晰地展示Scrum框架的各个阶段和活动。以下是一个常见的Scrum流程图示例&#xff1a; 转自&#xff1a;Leangoo.com 免费敏捷工具 这个流程图涵盖了Scrum框架的主要阶段和活动&#xff0c;其中包括…...

Android Handler/Looper视角看UI线程的原理

概述 Handler/Looper机制是android系统非重要且基础的机制&#xff0c;即使在rtos或者linux操作系统上开发应用框架时&#xff0c;也经常借鉴这个机制。通过该机制机制可以让一个线程循环处理事件&#xff0c;事件处理逻辑即在Handler的handleMessge种。本文建议android8.1源码…...

【网络】网络入门

网络入门 一、网络发展二、网络协议初识1、认识"协议"2、协议分层3、OSI七层模型4、TCP/IP五层(或四层)模型 三、网络传输基本流程1、同局域网的两台主机通信2、跨网络的两台主机通信 四、网络中的地址管理1、IP地址2、认识MAC地址 一、网络发展 独立模式&#xff1a…...

GO-实现简单文本格式 文本字体颜色、大小、突出

毫无疑问GO的生态就是一坨大便。老子英文水平小学啊。 实现简单文本格式 文本字体颜色、大小、突出显示等。 创建要给docx文件容器【我估算的】 doc : document.New() defer doc.Close() doc.SaveToFile("simple.docx") 把容器保存为文件 设置标题 创建自然段…...

铅华洗尽,粉黛不施,人工智能AI基于ProPainter技术去除图片以及视频水印(Python3.10)

视频以及图片修复技术是一项具有挑战性的AI视觉任务&#xff0c;它涉及在视频或者图片序列中填补缺失或损坏的区域&#xff0c;同时保持空间和时间的连贯性。该技术在视频补全、对象移除、视频恢复等领域有广泛应用。近年来&#xff0c;两种突出的方案在视频修复中崭露头角&…...

latex,不带行号的algorithm

\usepackage{algorithm,algorithmic}\begin{algorithm} \caption{The Example Algorithm} \label{alg123} \begin{algorithmic} \STATE{\textbf{Input:} ...} \STATE{\textbf{Output:} ...} \IF{...} \STATE{...} \ENDIF \RETURN{...} \end{algorithmic} \end{algorithm}...

RocketMQ高性能核心原理与源码架构剖析

文章目录 一、源码环境搭建主要功能模块源码启动服务启动nameServer启动Broker发送消息消费消息 二、源码热身阶段NameServer的启动过程关注重点源码重点 Broker服务启动过程关注重点源码重点 Netty服务注册框架关注重点源码重点关于RocketMQ的同步结果推送与异步结果推送 Brok…...

MATLAB中zp2tf函数用法

目录 语法 说明 示例 质点弹簧系统的传递函数 zp2tf函数的功能是将零极点增益滤波器参数转换为传递函数形式。。 语法 [b,a] zp2tf(z,p,k) 说明 [b, a] zp2tf(z, p, k) 将一个分解的传递函数表示方式转换。 将单输入/多输出&#xff08;SIMO&#xff09;系统的多输出…...

解决:uniapp项目中调用小程序的chooseAddress() API失效

目录 问题描述 解决方案 问题描述 使用 Hbuilder X 编辑器和 uni-app 框架开发小程序项目&#xff0c;在调用小程序提供的 uni.chooseAddress() API实现选择收货地址的功能时&#xff0c;点击选择收货地址没有反应&#xff0c;获取不到用户收货地址&#xff0c;API失效了 …...

2023 项目组总结(待完善)

2023 项目组总结 目录概述需求&#xff1a; 设计思路实现思路分析1.JA项目2.XC项目3.XL 项目4.tydic 项目 总结 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better re…...

Chrome浏览器 键盘快捷键整理

名人说&#xff1a;莫听穿林打叶声&#xff0c;何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 本篇笔记整理&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 〇、前言一、常用快捷键二、分类型快捷键表&#xff08;…...

【JAVA】集合与背后的逻辑框架,包装类,List,Map,Set,静态内部类

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录 collectionCollection创建collection使用泛型collection方法 Map 接口Map的存储结构HashMap和Tr…...

mac电脑版数字图像处理软件:ACDSee Photo Studio 9最新 for Mac

ACDSee Photo Studio 9是一款由ACD Systems开发的功能强大的照片管理和编辑软件&#xff0c;专为Mac用户提供一站式解决方案&#xff0c;方便用户轻松浏览、管理和编辑照片。该软件提供了许多实用的工具和功能&#xff0c;包括高效的导入和排序工具、强大的编辑工具、智能组织和…...

酷开系统 | 酷开科技让你放肆嗨唱,聆听内心最真实的声音

在这个喧嚣的城市里&#xff0c;每个人都像是一座孤岛&#xff0c;漂浮在茫茫人海之中&#xff0c;我们总是忙于奔波在各种琐事之间&#xff0c;渐渐忘记了内心深处的声音&#xff0c;我们压抑自己的情感&#xff0c;害怕被误解、被批评&#xff0c;然而真正的我们&#xff0c;…...

PC电脑 VMware安装的linux CentOs7如何扩容磁盘?

一、VM中进行扩容设置 必须要关闭当前CentOS&#xff0c;不然扩展按钮是灰色的。 输入值必须大于当前磁盘容量。然后点击扩展&#xff0c;等待扩展完成会提示一个弹框&#xff0c;点击确定&#xff0c;继续确定。 二、操作CentOS扩容——磁盘分区 第一步设置完成。那就启动 …...

redis极速的奥秘

文章目录 1.基于内存存储实现2.高效的数据结构3.合理的数据编码4.合理的线程模型5. 虚拟内存机制实现原理 1.基于内存存储实现 内存读写是比在磁盘快很多的&#xff0c;Redis 基于内存存储实现的数据库&#xff0c;相对于数据存在磁盘的 MySQL 数据库&#xff0c;省去磁盘 I/O…...

three.js之初识three.js

什么是three.js Three.js是一款运行在浏览器中的 3D 引擎&#xff08;基于WebGL的API的封装&#xff09; 什么是WebGL&#xff1f; WebGL&#xff08;英语&#xff1a;Web Graphics Library&#xff09;是一种3D绘图协议&#xff0c;这种绘图技术标准允许把JavaScript和Open…...

二维码智慧门牌管理系统:地址管理的现代革命

文章目录 前言一、标准地址的革新二、广泛的应用前景 前言 在科技不断发展和社会进步的背景下&#xff0c;高效、精准、智能的管理系统已经成为当今社会的迫切需求。传统的门牌管理系统在应对这一需求方面已显得力不从心&#xff0c;因此&#xff0c;二维码智慧门牌管理系统的…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...