Git常用指令使用
摘要:之前代码管理都是借助于fork、sourceTree等图形工具,最近发现直接用命令也好用,就总结Git常用的指令
1、Git的介绍
1.1 git官网
安装: Git - Downloading Packagehttps://git-scm.com/download/mac Mac上安装,直接使用,并使用查看版本,验证安装成功
czh12@czh12deiMac ~ % brew install git
Running `brew update --auto-update`...
Error: Failed to download https://formulae.brew.sh/api/formula.jws.json!
Failed to download https://formulae.brew.sh/api/cask.jws.json!
==> Downloading https://formulae.brew.sh/api/formula.jws.json
######################################################################## 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
-=O=- # # # #
curl: (28) Operation too slow. Less than 100 bytes/sec transferred the last 5 seconds
Error: Failure while executing; `/usr/bin/env /opt/homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --user-agent Homebrew/4.0.11-93-g367fe53\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 11.6\)\ curl/7.64.1 --header Accept-Language:\ en --fail --progress-bar --location --remote-time --output /Users/czh12/Library/Caches/Homebrew/api/cask.jws.json --compressed --speed-limit 100 --speed-time 5 --progress-bar https://formulae.brew.sh/api/cask.jws.json` exited with 28. Here's the output:
-=O=- # # # #
curl: (28) Operation too slow. Less than 100 bytes/sec transferred the last 5 seconds==> Downloading https://formulae.brew.sh/api/cask.jws.json
######################################################################## 100.0%
==> Fetching dependencies for git: gettext and pcre2
==> Fetching gettext
==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-core/6b9f22a
-=O=- # # # #
curl: (22) The requested URL returned error: 404
Error: git: Failed to download resource "gettext--ruby-source"
Download failed: https://raw.githubusercontent.com/Homebrew/homebrew-core/6b9f22abafb887533d9dc5dd06f604b52ba7c24e/Formula/gettext.rb
czh12@czh12deiMac ~ % git -v
unknown option: -v
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>][--exec-path[=<path>]] [--html-path] [--man-path] [--info-path][-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare][--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]<command> [<args>]
czh12@czh12deiMac ~ % git --version
git version 2.30.1 (Apple Git-130)
1.2 重要概念
Git、GitHub 和 GitLab 的区别
-
Git:
Git 是一个分布式版本控制系统,用于跟踪文件的变化并协助多人协作开发项目。开发者可以通过 Git 轻松地创建分支、提交更改、合并代码等操作,从而有效地管理代码版本。Git 允许每个开发者在本地拷贝完整的代码仓库,并且可以独立工作,无需依赖中央服务器。
-
GitHub:
GitHub 是一个基于 Git 的代码托管平台,提供了代码仓库托管、团队协作、问题追踪、持续集成等功能。开发者可以在 GitHub 上创建公开或私有的代码仓库,与团队成员共享代码,进行代码审查,管理项目等。GitHub 是一个社交化的平台,开发者可以在上面交流、学习和分享代码。
-
GitLab:
GitLab 也是一个基于 Git 的代码托管平台,类似于 GitHub,但提供了更多的功能和服务。除了代码托管外,GitLab 还包括持续集成、部署管道、代码审查、事务管理等功能。GitLab 可以作为自托管的解决方案,企业可以在自己的服务器上搭建 GitLab 实例,更好地控制数据和安全性。
四个区域
工作区→暂存区→本地仓库→远端仓库
-
工作区(Working Directory):
工作区是指存放项目源文件的目录,是开发者直接编辑和修改代码的地方。在工作区中进行的修改不会被 Git 跟踪或记录。
-
暂存区(Staging Area):
暂存区是一个中间区域,用于临时存放已经修改但还未提交到本地仓库的更改。开发者可以通过将工作区的修改内容暂存到暂存区,然后一次性提交到本地仓库。
-
本地仓库(Local Repository):
本地仓库是存放项目完整历史记录和版本信息的地方,包含所有提交的快照和元数据。当开发者提交(commit)更改时,这些更改会被永久保存到本地仓库中。
-
远端仓库(Remote Repository):
远端仓库是分布式版本控制系统中的远程存储库,通常托管在云端或其他服务器上。开发者可以将本地仓库中的更改推送(push)到远端仓库,或者从远端仓库拉取(pull)最新的更改到本地仓库。
HEAD:当前所在位置 在 Git 中,HEAD 是一个指向当前所在位置的符号引用。它可以指向当前所在的分支(通常是最新提交的快照)或直接指向特定的提交。 HEAD 通常用于表示当前工作目录所基于的提交版本,也可以用来切换分支、查看历史记录等操作。
master:主分支
在 Git 中,master 是默认的主分支名称,新建仓库时通常会自动创建这个分支。 开发者可以在 master 分支上进行主要的开发工作,也可以根据需要创建其他分支进行功能开发或修复。
branch:分支
分支是 Git 中用于独立开发某个功能或修复某个问题的机制。通过创建分支,可以在不影响主线开发的情况下进行并行开发。 每个分支包含自己的提交历史,可以随时切换不同的分支进行工作。
origin:远端
在 Git 中,origin 是默认的远端仓库名称,通常指向项目在远程服务器上的中央仓库。 当克隆一个远程仓库时,Git 会自动为远程仓库创建一个名为 origin 的别名,方便开发者与远程仓库进行交互。
2、单人开发常用Git命令
2.1 git 配置
配置的生效范围,全局、系统和本地的Git配置文件。例如:
git config --global:使用全局配置文件(用户层面)
git config --system:使用系统配置文件(系统层面)
git config --local:使用仓库配置文件(本地项目)
czh12@czh12deiMac ~ % git config --global user.name 'czh12'
czh12@czh12deiMac ~ % git config --global user.email 'czh12@163.com'
czh12@czh12deiMac ~ % git config --get user.name
czh12
czh12@czh12deiMac ~ % git config --get user.email
czh12@163.com
2.2 创建仓库实现初次提交
初始化git仓库
czh12@czh12deiMac ~ % cd /Users/czh12/Desktop/git
czh12@czh12deiMac git % pwd
/Users/czh12/Desktop/git
czh12@czh12deiMac git % ls
imooc_git
czh12@czh12deiMac git % git init imooc_git
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /Users/czh12/Desktop/git/imooc_git/.git/
注:查看隐藏文件夹 shift +command + .
git对文件的增删改查
add添加到暂存区:git add
commit 提交到本地仓库: git commit
status 查看状态: git status
czh12@czh12deiMac git % ls
imooc_git
czh12@czh12deiMac git % cd imooc_git
czh12@czh12deiMac imooc_git % ls
month.txt
**## add添加到暂存区:git add 文件名
czh12@czh12deiMac imooc_git % git add month.txt
czh12@czh12deiMac imooc_git % git status
On branch masterNo commits yetChanges to be committed:(use "git rm --cached <file>..." to unstage)new file: month.txt
## commit 提交到本地仓库: git commit
czh12@czh12deiMac imooc_git % git commit
[master (root-commit) 054f99a] first commit1 file changed, 4 insertions(+)create mode 100755 month.txt
czh12@czh12deiMac imooc_git % git status
On branch master
nothing to commit, working tree clean
## 修改文件后未上传到暂存区, status 查看状态: git status
czh12@czh12deiMac imooc_git % git status
On branch master
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified: month.txtno changes added to commit (use "git add" and/or "git commit -a")
czh12@czh12deiMac imooc_git % git add month.txt
czh12@czh12deiMac imooc_git % git status
On branch master
Changes to be committed:(use "git restore --staged <file>..." to unstage)modified: month.txt
## 一步完成提交到暂存区和本地仓库
czh12@czh12deiMac imooc_git % git commit -a
[master cf664e3] commit -a1 file changed, 3 insertions(+)
rm 移除文件:git rm 文件名
mv 重命名文件:git mv 原名 改后名称
czh12@czh12deiMac imooc_git % git add month2.txt
czh12@czh12deiMac imooc_git % git commit
[master f350d57] month2.txt1 file changed, 7 insertions(+)create mode 100755 month2.txt
**## 移除文件:git rm 文件名**
czh12@czh12deiMac imooc_git % git rm month2.txt
rm 'month2.txt'
czh12@czh12deiMac imooc_git % git status
On branch master
Changes to be committed:(use "git restore --staged <file>..." to unstage)deleted: month2.txtczh12@czh12deiMac imooc_git % git commit
[master d6080b7] remove month2.txt1 file changed, 7 deletions(-)delete mode 100755 month2.txt
czh12@czh12deiMac imooc_git % git status
On branch master
nothing to commit, working tree clean
## 重命名文件:git mv 原名 改后名称
czh12@czh12deiMac imooc_git % git mv month.txt monthname.txt
czh12@czh12deiMac imooc_git % git commit
[master 524d2ce] rename month.txt1 file changed, 0 insertions(+), 0 deletions(-)rename month.txt => monthname.txt (100%)
git log help 看所有选项
git log -n 限定log个数
git log —oneline 单行简洁模式
git log —stat 查看提交历史以及每次提交所引入的更改的统计信息
git log --author='提交者' 按提交者查询
git log --grep='关键字' 按照关键字搜索提交记录
czh12@czh12deiMac imooc_git % git log --help
## git log -n
czh12@czh12deiMac imooc_git % git log -1
commit 524d2ce4e9757710202e5d8b117eb7dc52212fd3 (HEAD -> master)
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 15:35:28 2024 +0800rename month.txt
czh12@czh12deiMac imooc_git % git log --oneline
524d2ce (HEAD -> master) rename month.txt
d6080b7 remove month2.txt
f350d57 month2.txt
cf664e3 commit -a
054f99a first commit
czh12@zh12deiMac imooc_git % git log --stat
commit 524d2ce4e9757710202e5d8b117eb7dc52212fd3 (HEAD -> master)
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 15:35:28 2024 +0800rename month.txtmonth.txt => monthname.txt | 01 file changed, 0 insertions(+), 0 deletions(-)czh12@czh12deiMac imooc_git % git log --author='czh12'
commit 524d2ce4e9757710202e5d8b117eb7dc52212fd3 (HEAD -> master)
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 15:35:28 2024 +0800rename month.txtczh12@czh12deiMac imooc_git % git log --grep='month'
commit 524d2ce4e9757710202e5d8b117eb7dc52212fd3 (HEAD -> master)
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 15:35:28 2024 +0800rename month.txtcommit d6080b76aeadba837132ac6ccee67cfc129b4d45
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 15:33:15 2024 +0800remove month2.txtcommit f350d57a52c64cc6467b8c6841f494e441711541
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 15:31:15 2024 +0800month2.txt
2.3 git的图形化界面
learnGitBranching
Learn Git Branchinghttps://learngitbranching.js.org/?locale=zh_CN&NODEMO=
gitk安装:brew install git
2.4 分支Branch
创建分支:git branch 分支名
切换分支:git checkout 分支名
czh12@czh12deiMac imooc_git % git branch imoocbranch1
czh12@czh12deiMac imooc_git % git checkout imoocbranch1
Switched to branch 'imoocbranch1'
## 创建分支并切换
czh12@czh12deiMac imooc_git % git checkout -b imoocbranch2
Switched to a new branch 'imoocbranch2'
2.5 其他使用场景
git reset 撤销工作目录中的更改、回退到之前的提交或者修改提交历史
git reset --hard <commit-hash> :撤销所有从指定提交之后的更改,包括暂存区的更改
git reset --hard HEAD^ : ^号的个数为回退步数
git reset --hard HEAD~n :n为回退步数
场景:撤销最近的提交,可使用偏移符号:^和~
## 回退时使用:^的个数表示回退的提交数,~n中n表示回退的提交数
czh12@czh12deiMac imooc_git % git reset --hard HEAD^
HEAD is now at d6080b7 remove month2.txt
czh12@czh12deiMac imooc_git % git reset --hard HEAD~2
HEAD is now at cf664e3 commit -a
git rebase: 变基,会改变原有分支的路径,将一系列提交到一个新的基础提交上
git rebase main :将imooc分支上原有提交,重新提交到main分支(下图中'表示变基过)
合并commit
git reset --soft <commit-hash> : 当前分支的 HEAD 指针移动到指定的提交(commit-hash),同时保留工作目录(working directory)和暂存区(staging area)中的更改。再重新提交,将多次commit合并提交。
场景: 清理提交历史,移除不必要的提交或者合并提交;也可以撤销最近的提交再重新提(git reset --soft HEAD^)
czh12@czh12deiMac imooc_git % git log -4
commit 9cd46ac5fa118a83ef86365eb1a394086e692442 (HEAD -> master)
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 17:20:23 2024 +0800julcommit 985a67b124381309110b526d355ec4465172823d
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 17:17:57 2024 +0800juncommit fa6d3d1bdd85dd5961d7392612ef9e5bd0b437aa
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 17:16:51 2024 +0800maycommit **cf664e39f3bf1**fe7347e2c30ce3662171f395510
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 11:37:27 2024 +0800commit -a
czh12@czh12deiMac imooc_git % **git reset --soft ****cf664e39f3bf1fe**
czh12@czh12deiMac imooc_git % git status
On branch master
Changes to be committed:(use "git restore --staged <file>..." to unstage)modified: month.txtczh12@czh12deiMac imooc_git % git add monthname.txt
fatal: pathspec 'monthname.txt' did not match any files
czh12@czh12deiMac imooc_git % git add month.txt
czh12@czh12deiMac imooc_git % git commit
[master 2c71f6e] may june july1 file changed, 6 insertions(+)
czh12@czh12deiMac imooc_git % git log -3
commit 2c71f6e8b83f2b25c7c3f41437ad4876e77f325d (HEAD -> master)
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 17:34:01 2024 +0800**may june july**commit cf664e39f3bf1fe7347e2c30ce3662171f395510
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 11:37:27 2024 +0800commit -acommit 054f99a8e676a6727d49e31270e05e4e8c2c9fc7
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 11:29:59 2024 +0800first commit
修改commit
git commit --amend 修复的意思,但只能修改最新的一次提交
czh12@czh12deiMac imooc_git % git add month.txt
czh12@czh12deiMac imooc_git % git commit --amend
[master 5f84ec5] may june july AugestDate: Mon Mar 25 17:34:01 2024 +08001 file changed, 6 insertions(+)
czh12@czh12deiMac imooc_git % git log -1
commit 5f84ec5c1c59f87983753fc492a86d6e0c91d2fc (HEAD -> master)
Author: czh12 <czh12@163.com>
Date: Mon Mar 25 17:34:01 2024 +0800**may june july Augest**
修改之前某次指定的提交
git rebase -i <commit-hash>
然后选择edit, 编辑指定的提交
czh12@czh12deiMac imooc_git % git rebase -i cf664e39f3bf1fe734
Stopped at 5f84ec5... may june july Augest
You can amend the commit now, withgit commit --amend ## 提示后续步骤Once you are satisfied with your changes, rungit rebase --continue ## 提示后续步骤## 此处选择edit
edit 5f84ec5 may june july Augest
pick 2c7995d Sep
pick 7e7ba3a Oct# Rebase cf664e3..7e7ba3a onto cf664e3 (3 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
~
~ czh12@czh12deiMac imooc_git % git add month.txt
czh12@czh12deiMac imooc_git % git commit --amend
[detached HEAD 4d9c942] may June july AugestDate: Mon Mar 25 17:34:01 2024 +08001 file changed, 6 insertions(+)
czh12@zh12deiMac imooc_git % git rebase --continue
Successfully rebased and updated refs/heads/master.
撤销操作
撤销当前分支的变化
场景:切换到错误的分支,并提交了多次,但提交的代码是依然需要的
git reset --soft commitID 回退代码,但依然保存提交内容
git stash 储藏代码
git commit 提交代码
上述操作会将多次提交合并为一次提交
3. 团队开发中常用Git命令
未完待续……
相关文章:

Git常用指令使用
摘要:之前代码管理都是借助于fork、sourceTree等图形工具,最近发现直接用命令也好用,就总结Git常用的指令 1、Git的介绍 1.1 git官网 安装: Git - Downloading Packagehttps://git-scm.com/download/mac Mac上安装,直接使…...

数据结构与算法 顺序表的基本运算
一、实验内容 编写一个程序实现,实现顺序表的各种基本运算(假设顺序表的元素类型为char),并以此为基础设计一个程序完成下列功能: (1)初始化顺序表; (2)采…...
docker部署nacos(单机与集群)
拉去nacos镜像 [rootlocalhost keepalived]# docker search nacos NAME DESCRIPTION STARS OFFICIAL nacos/nacos-server This project contains a Docker image meant t… 464 …...

开启Safari手势支持
在使用Safari 的时候,大家有没有觉得不支持手势使用起来不是很方便, 触摸板只支持少量简单的手势,如缩放,滚动等。如果使用鼠标的用户,则完全无法使用手势。经过折腾研究,使用CirMenu应用可以完美解决这个要…...

Amuse:.NET application for stable diffusion
目录 Welcome to Amuse! Features Why Choose Amuse? Key Highlights Paint To Image Text To Image Image To Image Image Inpaint Model Manager Hardware Requirements Compute Requirements Memory Requirements System Requirements Realtime Requirements…...
Java冒泡排序详细讲解
冒泡排序是一种简单但效率较低的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。具体实现如下: 算法步骤: 比较相邻的元素:从第一个元素开始,依次…...
python数据解析xpath
前言一、安装?二、使用步骤1.基本使用**【2】谓语(Predicates)**案例 前言 xpath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xp…...

工业镜头常用参数之实效F(Fno.)和像圈
Fno. 工业镜头中常用到的参数F,有时候用F/#,Fno.来表示,指的是镜头通光能力的参数。它可用镜头焦距及入瞳直径来表示,也可通过镜头数值孔径(NA)和光学放大倍率(β)来计算。有效Fno.…...

what is apache?
Apache 通常指 Apache Software Foundation (ASF) 或 Apache HTTP Server,两者都是计算机软件领域的重要实体。 Apache 软件基金会 (ASF):Apache 软件基金会是一个开发开源软件项目的非营利组织。它为涵盖软件开发各个方面的广泛项目提供支持,…...

【二叉树】Leetcode 94. 二叉树的中序遍历【简单】
二叉树的中序遍历 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2] 解题思路 中序遍历是一种二叉树遍历方式,按照“左根右”的顺序遍历二叉树节点。 1、递归…...

Linux进程控制(等待)
进程等待 为什么要进行进程等待 进程等待是什么? 怎么进行进程等待? 回到我们之前进程状态的代码, 我们知道, 在这段代码中,父进程对子进程没有做任何的操作, 所以当子进程在退出后, 会一直处于…...
结构体-C语言
目录 前言 一、定义结构 结构体变量的创建和初始化 二、结构的特殊声明 特别注意: 结构的⾃引⽤ 三、结构体内存对⻬ 对⻬规则 优化结构体 #pragma 结构体传参 四、结构体实现位段 位段的内存分配 位段的跨平台问题 前言 C 数组允许定义可存储相同类…...

Unity DOTS中的baking(四)blob assets
Unity DOTS中的baking(四)blob assets blob assets表示不可变的二进制数据,在运行时也不会发生更改。由于blob assets是只读的,这意味着可以安全地并行访问它们。此外,blob assets仅限于使用非托管类型,这意…...

第三十天-Flask模板 Jinja2
目录 1.什么是模板 2.模板引擎Jinja2 默认配置 全局对象 全局函数 上下文处理器 3.模板中变量的使用 4.模板标签 条件判断if else for循环 添加注释 设置变量 转义显示 5.过滤器 过滤器使用 自定义过滤器 6.全局函数 7.模板中的宏 模板的基础 包含语法 8.…...

在项目中数据库如何优化?【MySQL主从复制(创建一个从节点复制备份数据)】【数据库读写分离ShardingJDBC(主库写,从库读)】
MySQL主从复制 MySQL主从复制介绍MySQL复制过程分成三步:1). MySQL master 将数据变更写入二进制日志( binary log)2). slave将master的binary log拷贝到它的中继日志(relay log)3). slave重做中继日志中的事件,将数据变更反映它自…...

Fragment 与 ViewPager的联合应用(2)
5.创建底部布局bottom_layout <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"horizontal"android:layout_width"match_parent"android:layout_height"55dp"android:background&qu…...

OriginBot智能机器人开源套件
详情可参见:OriginBot智能机器人开源套件——支持ROS2/TogetherROS,算力强劲,配套古月居定制课程 (guyuehome.com) OriginBot智能机器人开源套件 最新消息:OriginBot V2.1.0版本正式发布,新增车牌识别,点击…...

Java Web-Maven
Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具 Maven的作用 1.依赖管理:方便快捷的管理项目依赖资源(jar包),避免版本冲突问题 我们有的项目需要大量的jar包,采用手动导包的方式非常繁琐,并且版本升级也…...
.Net 异步委托
委托的 BeginInvoke 方法和 EndInvoke 方法可以实现异步执行委托方法。这允许委托的方法在后台线程中执行,而不会阻塞当前线程。小编在之前的webform开发中遇到下载进度条卡死的问题就是用它解决的。 案例: namespace ConsoleApplication1 {class Progr…...

web前端面试题---->HTML、CSS
一.居中方法 block元素如何居中 margin:0 auto;position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);flex布局: 对父元素操作 : justify-content:center; al…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
前端高频面试题2:浏览器/计算机网络
本专栏相关链接 前端高频面试题1:HTML/CSS 前端高频面试题2:浏览器/计算机网络 前端高频面试题3:JavaScript 1.什么是强缓存、协商缓存? 强缓存: 当浏览器请求资源时,首先检查本地缓存是否命中。如果命…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...

如何把工业通信协议转换成http websocket
1.现状 工业通信协议多数工作在边缘设备上,比如:PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发,当设备上用的是modbus从站时,采集设备数据需要开发modbus主站;当设备上用的是西门子PN协议时…...
验证redis数据结构
一、功能验证 1.验证redis的数据结构(如字符串、列表、哈希、集合、有序集合等)是否按照预期工作。 2、常见的数据结构验证方法: ①字符串(string) 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...