Git教程
文章目录
- Git 介绍
- GIt历史
- Git 安装
- 环境配置
- 工作区、缓存区和仓库区(版本库)
- 工作区(工作目录)
- 暂存区
- 仓库区
- git工作目录下文件的装填
- Git 生成公钥及添加到gitlab或Gerrit上
- Git常用命令
- git stauts
- git statu -s
- git add
- git commit
- git reset
- 1. git reset --hard
- 2. git reset HEAD
- 3. `git reset --hard`
- git reflog
- git log
- git checkout
- git diff
- git stash
- git rebase
- git branch
- git clean
- git remote
- git fetch
- git pull
- git push
- git push <远程主机名> <本地分支名> : <远程分支名>
- git blame
- git 常用举例
- git log输出格式
- 查看一个文件提交的提交记录
- 查看一个文件的提交记录
- 查看单个文件提交记录及内容
- 查看某次提交中的某个文件变化
- 显示每次提交的diff
- 其他问题
- 分支管理
- 合并模式
- 合并冲突
- git 打补丁
- 注意事项
- 参考链接:
Git 介绍
GIt历史
Git 安装
环境配置
-
git config --list 查看信息
-
git config --global user.name “your name” // 设置username
git config --global user.name "yourname"
-
git config --global user.email “your_email@youremail.com” // 设置邮箱
-
git config user.name 查看username
工作区、缓存区和仓库区(版本库)
工作区(工作目录)
就是你在电脑里能看到的目录。 对于添加、修改、删除文件的操作,都发生在工作区中。包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
暂存区
暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分
仓库区
工作区有一个隐藏目录.git
,这个不是工作区,而是git的版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等,其中最重要的就是称为stage(或者叫index)的暂存区,仓库区中记录的各版本是可以查看并回退的,但是在暂存区的版本一旦提交就再也没有了。
因为我们创建git版本库时,git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区【计算机的缓存区】,然后,一次性提交暂存区的所有修改,创建一个版本,放到master分支中。HEAD永远指向Master分支中的最新版本的。
git工作目录下文件的装填
Git工作目录下的文件存在两种状态:
- untracked 未跟踪(未被纳入版本控制)
比如说新建了个文件,没有git add。 - tracked 已跟踪的三种状态(被纳入版本控制)
- Unmodified 未修改状态
- Modified 已修改状态
- Staged 已暂存状态
Git 生成公钥及添加到gitlab或Gerrit上
通过SSH拉取代码时,实际上是通过公钥的验证机制来实现身份认证。具体过程如下:
1. 在本地电脑上,使用命令ssh-keygen生成一对公钥和私钥,将公钥保存在本地电脑的一个文件中(例如~/.ssh/id_rsa.pub)。
2. 将公钥(即上一步生成的文件中的内容)复制到服务器上。
3. 当你使用SSH协议从本地电脑连接到服务器并进行代码拉取或推送时,Git会自动查找本地电脑上的私钥,然后使用该私钥对身份进行验证,以确认是本地电脑所有者访问服务器。
4. 如果公钥与私钥匹配,服务器将接受身份验证并允许你访问代码库。
总之,通过SSH拉取代码时,需要确保本地电脑上的公钥已经添加到服务器中,以便在进行身份验证时可以让服务器确认你的身份。
- 进入ssh目录
cd ~/.ssh
- 查看是否生成公钥
ls
2.1 若存在,则目录下会有后缀为.pub的文件,如果不存在就自己生成公钥
2.2 如果不存在,生成公钥
先通过git config --list
查看自己的邮箱
再通过ssh-keygen -t rsa -C
"你的邮箱"命令生成公钥 - 查看公钥
cat id_rsa.pub
- 复制公钥分别添加到gitlab和Gerrit上
git lab添加公钥如下:
gerrit添加和gitlab步骤一样。
Git常用命令
git stauts
查看文件状态
git statu -s
输出更简洁的文件状态。
git add
git add 命令可将该文件添加到暂存区。
-
git add 【file】【file2】…
添加一个或多个文件到暂存区
-
git add 【dir】
添加指定目录到暂存区,包括子目录
-
git add .
添加当前目录下的所有文件到暂存区
-
git add -A (git add --all 的简写形式)
它会将当前整个工作区中所有的文件改动提交至暂存区,包括新增、修改和被删除的文件,不受当前所在目录限制。
-
git add *.c
提交以.c结尾的文件。
git commit
git commit 命令一次性将暂存区所有内容添加到本地仓库中,并创建一个版本。
-
git commit -m [message]
提交暂存区到本地仓库中。 [message] 是备注消息
-
git commit [file1] [file2] … -m [message]
提交暂存区的指定文件到仓库区。
-
git commit -a 或者 git commit -am [message]
如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步,直接来提交。-a命令针对是tracked的文件(即已经放入仓库中的文件)。
-
git commit --amend
在上一个commitID上继续提交,不新增新的提交,默认打开VIM编辑器,是否要修改commit信息
-
git commit --amend --no-edit
可以不修改commit信息直接进行提交
如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认会打开 vim。
注: 在 Linux 系统中,commit 信息使用单引号 ',Windows 系统,commit 信息使用双引号 "。所以在 git bash 中 git commit -m ‘提交说明’ 这样是可以的,在 Windows 命令行中就要使用双引号 git commit -m “提交说明”。
git reset
1. git reset --hard
后面不跟版本号,清除暂存区和工作区中tracked的改动。不会清除untracked的改动
其中HEAD表示当前分支最新版本【请记死】
HEAD^ 表示当前版本的前一个版本,
git reset --hard HEAD^
HEAD^^表示当前版本的前前个版本,也可以使用HEAD~1表示当前版本的前一个版本,HEAD~100表示当前版本的前100版本。
提示:这种都表示回退操作
git reset --hrad 版本号
回到指定的版本,这个存在两种情况。
- git reset --hard commit_id
commit_id 是完整的。并且是git log 能够查到的 否则会报错unknown revision or path not in the working tree.
- git reset --hard (通过 git reflog 查到的)
为什么有两种情况呢,存在这种场景,比方说我们分别提交了两个版本1 和 版本2 ,提交顺序:版本1在前,版本2在后,当前Head指向版本2,现在执行git reset --hard HEAD^ 回退了一下,git log 看到的只有版本1的情况。即使你知道版本2的完整的commit_id ,执行git reset --hard commit_id 报错,只能通过
git reset --hard b79613 切换到版本2。
git reset --hrad origin/《分支名》
回退到某个远程分支某个commit。
有这样的场景,我们和远程分支相同的内容下,又做了修改,但是又想回退到和远程分支相同的情况,就可以执行这个。
2. git reset HEAD
撤销暂存区中的修改,从暂存区回到了工作区,既提交了,想撤回。但是本地的修改并不会消失(工作区的内容不会改变)。
-
git reset HEAD …
撤销指定文件的add
也可以指定不同版本的file -
git reset HEAD *
撤销本地add的所有文件
-
git reset HEAD *.txt
3. git reset --hard
git reflog
可以查看所有版本的历史信息
git reflog命令中保留了从clone仓库开始,用户所有在本地库中的操作。
参考:https://www.jianshu.com/p/7e4cef3863e7
git log
git log
命令只可以查看到HEAD指针及其之前的版本信息,如果版本发生过回退操作,则可能会出现,HEAD指针之后仍存在历史提交版本的情况,而这些提交版本信息通过git log
命令是看不到的。
git checkout
-
git checkout -- <文件> <文件> ...
git checkout -- <文件>来丢弃工作区指定文件的改动
2. git checkout *
丢弃工作区中所有文件的改动
git checkout -- *.txt
git diff
对比两个版本的差异
-
git diff
对比的是工作区修改之前和修改之后的差异。
-
git diff 版本1 版本2
对比的是版本1 和版本2 之间的差异
git diff HEAD HEAD^
-
git diff 分支1 分支2
-
git diff 文件
git stash
场景: 当你接到一个修复一个代号001的bug的任务时,很自然地,你想创建一个分支bug-001来修复它,但是,等等,当前分支正在上进行的工作还没有提交:
并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?
git stash :git还提供了一个stash功能,可以把当前工作现场“储藏“起来,等以后恢复现场后继续工作。即缓存起来。
-
git stash save "save message"
执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。 -
git stash list
查看stash了哪些存储 -
git stash show
显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num}
,比如第二个git stash show stash@{1}
-
git stash apply
应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0}
,如果要使用其他个,git stash apply stash@{$num}
, 比如第二个:git stash apply stash@{1}
-
git stash pop
命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0}
,如果要应用并删除其他stash,命令:git stash pop stash@{$num}
,比如应用并删除第二个:git stash pop stash@{1}
-
git stash drop stash@{$num}
丢弃stash@{$num}
存储,从列表中删除这个存储 -
git stash clear
删除所有缓存的stash -
注意 untracked的文件,执行stash是不会被存储的。
新建了一个e.txt,e.txt并没有被加入到版本控制,git add 把文件加入到版本控制之后才行。
git rebase
参考:
https://blog.csdn.net/weixin_42310154/article/details/119004977
https://blog.csdn.net/qq_39512532/article/details/110260369
git branch
后面什么都不写,列出所有本地分支
-
git branch -r
列出所有远程分支
-
git branch -a
列出所有本地分支和远程分支
-
git branch <分支名>
创建分支
-
git checkoout -b <分支名>
创建并切换分支
-
git checkout -b 本地分支名x origin/远程分支名x
使用该方式会在本地新建分支x,并自动切换到该本地分支x。采用此种方法建立的本地分支会和远程分支建立映射关系(跟踪远程分支)。
-
git checkout <分支名>
切换分支
-
git merge <分支名>
合并分支到当前分支
-
git branch -d <分支名>
删除分支
-
git branch -m <旧分支名字> <新分支名字>
git branch -m master main
把master分支名字,改为新分支名字。
git clean
-
git clean -f
删除当前目录下所有untracked的文件. 它不会删除.gitignore文件里面指定 的文件夹和文件, 不管这些文件有没有被track过
-
git clean -df
删除当前目录下没有untracked的文件和文件夹
和git reset --hard 是一对好基友,结合使用他们能让你的工作目录完全回退到最近一次commit的时候
git remote
如果想查看已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出指定的每一个远程服务器的简写。 如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字
-
git remote
-
git remote -v
-
git remote add 添加一个新的远程 Git 仓库,同时指定一个可以引用的简写
这个使用场景式:我本地已经创建了git仓库,但是我想和远程仓库建立联系。即通过git remote add <shortname> <url>
添加远程仓库。
-
git remote rm
如果因为一些原因想要移除一个远程仓库 ,可以使用 git remote rm
注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库
git fetch
git fetch 是从远程仓库获取最新版本到本地仓库,不会自动merge
git pull
git pull 是从远程仓库获取最新版本并merge到本地仓库
如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数**–allow-unrelated-histories**
git push
当你想分享你的代码时,可以将其推送到远程仓库。 命令形式:git push [remote-name] [branch-name]
远程仓库 master分支多了 hello.txt文件。
git push <远程主机名> <本地分支名> : <远程分支名>
git push origin HEAD:refs/for/master
git push 肯定是推送
origin : 是远程的库的名字
HEAD: 是一个特别的指针,它是一个指向你正在工作的本地分支的指针,
可以把它当做本地分支的别名,git这样就可以知道你工作在哪个分支
refs/for :这个不是git的规则,而是gerrit的规则, 意义在于我们提交代码到服务器之后是需要经过 code review 之后才能进行merge的
refs/heads: 不需要
简单来说: refs/for/mybranch需要经过code review之后才可以提交;refs/heads/mybranch不需要code review
git blame
git blame用来追溯一个指定文件的历史修改记录
git blame用来追溯一个指定文件的历史修改记录。它是显示任何文件中每行最后一次修改的提交记录。 所以,如果你在代码中看到有一个bug,你可以使用 git blame 标注这个文件,查看哪一次提交引入了这行。
命令用法:
git blame filename
可以使用 -L 指定文件的行数范围:
git blame -L n1,n2 filename
举例
git blame -L 69,82 Makefile 查看Makefile这个文件第69--82行最近一次的修改记录
git 常用举例
git log输出格式
git log --pretty
是指定Git log命令的输出格式。
git log --pretty=oneline // 将每个commit 以一行显示。包括了commit的SHA-1值和提交信息的第一行
查看一个文件提交的提交记录
查看一个文件的提交记录
git log filename // git log 直接与文件相关的提交记录
git log --pretty=oneline filename
查看单个文件提交记录及内容
git log -p filename
查看某次提交中的某个文件变化
git show commitId filename //使用git show命令 后跟commitId和文件名
显示每次提交的diff
git log -p filename
其他问题
- 克隆http和ssh有什么区别?
http不管你是谁,都可以下载【克隆】/提交项目代码。每次提交代码需要你输入用户名和密码;
SSH,如果你的电脑需要与github上的仓库交互,那么就要把你的电脑的ssh公钥添加到这个github账户上。
比如工作中你是ZXC这个项目组的成员,拥有者,你把你每天的代码——本地电脑跟github上公司项目交互,你得是这个项目的成员或者拥有者才能提交代码,这个方式就不需要输入用户名和密码提交代码,直接提交。工作中,你的老大会找你要你的github账号,邀请你到项目组,你是小组成员,为了方便提交代码,此时用SSH方式,工作中都是这种方式。SSH方式有一个条件要记住:你是项目的拥有者或组成员才可以使用此方法。知道这些就够了。
分支管理
(1)一开始的时候,master分支是一条线,git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:
每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长
(2)当我们创建新的分支,例如dev时,git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
git创建一个分支很快,因为除了增加一个dev指针,改变HEAD的指向,工作区的文件都没有任何变化。
3)不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:
(4)假如我们在dev上的工作完成了,就可以把dev合并到master上。git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:
git合并分支也很快,就改改指针,工作区内容也不变。
(5)合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:
合并模式
- Fast-forward信息,Git告诉我们,这次合并是“快进模式“,也就是直接把master指向dev的当前提交,仅仅是更新了分支的指针,不会产生合并提交,所以合并速度非常快。默认的合并行为。
- 合并冲突,遇到合并冲突的时候,需要处理冲突内容,然后再add、commit提交。
- 但是有些快速合并不能成功而且合并时没有冲突,这个时候git会帮我们在合并之后做一次新的提交,但这种模式下,删除分支后,会丢掉分支信息。使用的命令是
git merge --no-ff <分支名称>
不使用默认快速合并。
合并冲突
在master分支和dev分支对code.text文件有相同的位置修改了内容。合并两个分支的时候就会有冲突。
git用<<<<<<<<,========,>>>>>>>>标记不同分支的内容,我们修改如下后保存:
手动解决的方法就是删除箭头所指。然后再提交。
git 打补丁
参考:Git 补丁 —— diff 和 patch 使用详解
注意事项
- 跨系统拷贝git的代码,(比方说,你在Linux上拉取的代码,直接复制到Windows上去执行git操作),由于文件的属性变了,所以git操作会出现一些问题。如果想要在Windows上操作,尽量跨系拷贝,直接拉取代码即可。
参考链接:
强推:https://blog.csdn.net/YJG7D314/article/details/104551896
相关文章:

Git教程
文章目录 Git 介绍GIt历史Git 安装环境配置工作区、缓存区和仓库区(版本库)工作区(工作目录)暂存区仓库区git工作目录下文件的装填 Git 生成公钥及添加到gitlab或Gerrit上Git常用命令git stautsgit statu -sgit addgit commitgit reset1. git reset --ha…...

使用序列化技术保存数据 改进 IO流完成项目实战水果库存系统
上一节内容是 使用IO流完成项目实战水果库存系统https://blog.csdn.net/m0_65152767/article/details/133999972?spm1001.2014.3001.5501 package com.csdn.fruit.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java…...
0基础学习PyFlink——使用PyFlink的Sink将结果输出到外部系统
在《0基础学习PyFlink——使用PyFlink的SQL进行字数统计》一文中,我们直接执行了Select查询操作,在终端中直接看到了查询结果。 select word, count(1) as count from source group by word; ------------------------------------------------------ |…...

会声会影2024旗舰版详细功能介绍
随着网络视频的蓬勃发展,越来越多的人开始涉足视频剪辑领域,毕竟技多不压身嘛。在众多剪辑软件中,剪映和会声会影是备受新手青睐的两种。那么,会声会影和剪映哪个好呢?在它们之间,哪一个更适合初学者呢接&a…...
QtCreator 查看类帮助文档,快捷键操作:按两次F1 全屏帮助,Esc取消全屏
如何查看类帮助文档 选择类,按F1查看类帮助文档。 示例: #include <QLabel> // 将光标放在QLabel上,按F1右侧弹出的类帮助手册可视宽度很小,如果按两次 F1 键,帮助文档将会以全屏模式显示,以便更清…...

C语言文件操作(1)
C语言文件操作(1) 文章目录 C语言文件操作(1)一、理解文件1.概述2.分类①.正常角度②.文本文件和二进制文件 二、文件的打开和关闭1.流和标准流2.文件类型指针3.文件的打开和关闭以及使用类型 三、文件缓冲区 一、理解文件 1.概述…...
adb 操作命令(adb调试QT项目使用到的命令)
1.adb连接串口 获取root权限 adb root && adb remount && adb shell2.测试串口命令 stty -F /dev/ttyS4 cs8 -parenb -cstopb -echoecho "12345\n" > /dev/ttyS8cat /dev/ttyS4 &3.软件在安卓系统上的名字已经活动名称(下面是示…...

mysql下载和安装,使用
先下载安装 官方下载 已下载备份软件 安装,一路下一步设置环境变量 4. 打开一个cmd,输入mysql -u root -p...

Redis底层核心数据结构详解
文章目录 一、深入String(SDS)1. 字符串简介2. SDS存在的意义3. SDS结构设计4. SDS与C字符串的区别4.1 常数复杂度获取字符串长度4.2 杜绝缓冲区溢出4.3 二进制安全4.4 SDS API 5 小结 二、深入List (QuickList)1. 链表节点结构设计2. Redis的链表实现的…...

如何学会从产品经理角度去思考问题?
如何学会从产品经理角度去思考问题? 从产品经理的角度思考问题意味着你需要关注产品从构思到上市全过程中的各个方面,包括用户需求、市场趋势、设计、开发、测试、上市后的用户反馈等。以下是一些策略和方法,帮助你培养从产品经理角度思考问…...
正则表达式的神奇世界:表达、匹配和提取
正则表达式的神奇世界:表达、匹配和提取 前言第一: 什么是正则表达式?第二: 字符匹配和量词:1. 字符匹配:2. 量词:3. 贪婪和非贪婪匹配: 第三:字符类和元字符1. 字符类&a…...

密码登录虽安全,但有时很麻烦!如何禁用或删除Windows 11中的密码登录
如果你想在Windows 11上自动登录,在本指南中,我们将向你展示如何删除你的帐户密码。 在Windows 11上,你可以至少通过三种方式从帐户中删除登录密码。在你的帐户上使用密码有助于保护你的计算机和文件免受来自internet或本地的未经授权的访问。然而,在某些情况下,密码可能…...
Python实现的快速排序代码
Python实现的快速排序代码 def bubble_sort(arr): n len(arr) for i in range(n): for j in range(0, n-i-1): if arr[j] > arr[j1]: arr[j], arr[j1] arr[j1], arr[j] return arr 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,…...

【USRP】通信基带物理层历史
无线通信的基带物理层开发历史涵盖了从早期无线技术到当前复杂的移动通信标准的各种进步。以下是关于无线通信基带物理层开发的简要历史概述: 无线电初期:20世纪初,Guglielmo Marconi等人通过无线电进行了早期的无线通信尝试。这些早期的尝试…...

依靠继承与聚合,实现maven搭建分布式项目
简介聚合 对于复杂的Maven项目,一般建议采用多模块的方式来设计开发,便于后期维护管理。但是构建项目时,如果每次都需要按模块一个一个进行构建会十分麻烦,而Maven的聚合功能就可以很好的解决这个问题,当用户对聚合模…...
华为OD 叠积木(100分)【java】A卷+B卷
华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...

vue重修之自定义项目、ESLint和代码规范修复
文章目录 VueCli 自定义创建项目ESlint代码规范及手动修复代码规范错误 VueCli 自定义创建项目 安装脚手架 (已安装) npm i vue/cli -g创建项目 vue create xxx选项 Vue CLI v5.0.8 ? Please pick a preset:Default ([Vue 3] babel, eslint)Default ([Vue 2] babel, eslint) …...
华为OD 完全二叉树非叶子部分后序遍历(200分)【java】A卷+B卷
华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应往年部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为OD…...
AI是未来?——神经网络篇
AI是未来?——神经网络篇 文章目录 AI是未来?——神经网络篇1. 神经网络小记问题记录: 1. 神经网络小记 疑问:假如让神经网络识别一张猫的图片,他经过了n个神经元节点最终识别为了狗。那么此时观察产生反应的这些神经…...

c语言练习94:分割链表
分割链表 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1: 输入:head [1,4,3,2,5,2], x…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合
无论是python,或者java 的大型项目中,都会涉及到 自身平台微服务之间的相互调用,以及和第三发平台的 接口对接,那在python 中是怎么实现的呢? 在 Python Web 开发中,FastAPI 和 Django 是两个重要但定位不…...