Git基本命令和使用
文章目录
- 1、Git本地库命令
- 1.1、初始化本地库
- 1.2、设置用户签名
- 1.3、查看本地库状态
- 1.4、将工作区的修改添加到暂存区
- 1.5、将暂存区的修改提交到本地库
- 1.6、历史版本
- 1.7、取消commit
- 1.8、取消暂存文件
- 2、分支操作
- 2.1、查看分支
- 2.2、创建分支
- 2.3、分支合并时产生冲突
- 3、Gitee远程库实操
- 3.1、克隆远程仓库
- 3.2、创建远程仓库别名
- 3.3、推送本地分支上的内容到远程仓库
- 3.4、拉取远程库内容
- 4、跨团队协作-Fork应用
- 5、SSH免密登录
- 6、IDEA中使用Git本地仓库
- 6.1、Git忽略文件
- 6.2、定位Git程序
- 6.3 初始化本地库
- 6.4 添加到暂存区
- 6.5 提交到本地库
- 6.6 创建分支
- 6.7 切换分支
- 6.8 合并分支
- 6.9 切换版本
- 7、IDEA中连接Gitee远程仓库
- 7.1 设置Gitee账号
- 7.2 分享工程到Gitee
- 7.3 clone
- 7.4 push
- 7.5 pull
- Git学习链接
1、Git本地库命令
命令名称 | 作用 |
---|---|
git init | 初始化本地库 |
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
1.1、初始化本地库
- 基本语法
git init
- 案例实操
初始化效果,会生成.git文件夹
1.2、设置用户签名
- 基本语法
git config --global user.name 用户名
git config --global user.email 邮箱
- 案例实操
git config --global user.name ZHANG Yaning
git config --global user.email yaning.zhang@sunmi.com
#查看签名信息
git config user.namegit config user.email
#如果你想查看当前用户的所有Git配置信息,可以使用以下命令:
git config --list
#如果你想查看某个特定仓库的用户配置信息,可以在上述命令后加上--local参数,如:
git config --local user.name
git config --local user.email
git config --local --list
也可以在文件中查看
cat ~/.gitconfig
1.3、查看本地库状态
- 基本语法
git status
- 案例实操
-
工作区没有任何文件
-
检测到未追踪的文件
新建一个hello.txt后查看
- 检测到有新建的文件添加到了暂存区
执行
git add hello.txt
- 提交完成后查看状态
git commit -m "测试"
- 检测到工作区有文件被修改
修改hello.txt
-
工作区的修改添加到了暂存区
-
产生冲突(在后面讲分支操作后演示)
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|**MERGING**)
$ git status
On branch master
You have unmerged paths.(fix conflicts and run "git commit")(use "git merge --abort" to abort the merge)Unmerged paths:(use "git add <file>..." to mark resolution)both modified: hello.txtno changes added to commit (use "git add" and/or "git commit -a")
1.4、将工作区的修改添加到暂存区
- 基本语法
git add 文件名
1.5、将暂存区的修改提交到本地库
- 基本语法
git commit -m "日志信息" 文件名$ git commit -m "my first commit" hello.txt
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory.
[master (root-commit) 86366fa] my first commit1 file changed, 16 insertions(+)create mode 100644 hello.txt
1.6、历史版本
- 查看历史版本
- 基本语法
git reflog
- 案例实操
修改两次文件内容,分别add、commit
- 版本穿梭
- 基本语法
git reset --hard 版本号
- 案例实操
1.7、取消commit
在 git 中提交后,如何撤销?在使用 git 协同工作,有时候我们提交了一次修改,发现了错误,想要撤销该次提交,该怎么做呢?git 中的每次提交(commit) 都相当于是仓库的一个快照,另外,在 git 中有一个名为 HEAD 的引用变量–使用 git log 查看日志的时候就能看到。这个 HEAD 用于指向你正在工作的分支中的最近提交。
-
基本命令
在 git 中撤消提交的最简单方法是使用 还原提交(revert)选项:
git revert
这会撤销最近的提交。
包括使用 revert 在内,有两种方法可以撤销提交操作:
- git revert: 恢复 git 仓库的先前状态,并将更改反映在 git 日志中;
- git reset:删除上次提交。如果想要彻底恢复错误的提交且不保留日志,可使用 git reset。
-
案例实操1:还原提交
$ git status
On branch master
nothing to commit, working tree clean
使用 cat 命令来看一下这个文件的内容:
$ cat hello.txt
123
456
然后添加一行“zyn”使用 git add . 将其添加到暂存区,再然后做一次提交
$ vim hello.txt$ git add hello.txt
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory$ git commit -m "test revert"
[master 2e99fb8] test revert1 file changed, 1 insertion(+)$ git status
On branch master
nothing to commit, working tree clean$ cat hello.txt
123
456
zyn系统返回给我一个唯一标识(master 2e99fb8)。现在运行 git revert 并使用该唯一标识,来恢复到上一次提交的状态:
$ git revert master 2e99fb8
[master 6e2ec95] Revert "test revert"1 file changed, 1 deletion(-)$ cat hello.txt
123
456
然后来看一下 git 日志,检查撤销操作有没有反映在日志中。
$ git log
commit 6e2ec954f69ca731a9121182afeca52eaf7213a5 (HEAD -> master)
Author: zyn <zyn@qq.com>
Date: Fri Oct 20 22:56:27 2023 +0800Revert "test revert"This reverts commit 2e99fb876b98962cff05715c69f8ee11403da5d0.commit 2e99fb876b98962cff05715c69f8ee11403da5d0
Author: zyn <zyn@qq.com>
Date: Fri Oct 20 22:55:54 2023 +0800test revertcommit 14cf74cf24898c8b5852d7fd6e639290ad30575b
Author: zyn <zyn@qq.com>
Date: Fri Oct 20 22:55:03 2023 +0800init
-
实操案例2:删除提交
$ cat hello.txt 123 456首先更改一个文件: $ vim hello.txt$ cat hello.txt 123 456 zhangzhangzhang 然后提交: $ git add hello.txt warning: LF will be replaced by CRLF in hello.txt. The file will have its original line endings in your working directory$ git commit -m "test reset" [master 15ef403] test reset1 file changed, 1 insertion(+)然后使用 git reset 命令来撤销这次提交: $ git reset --soft HEAD~1接下来看下 git 日志:上次提交(提交文本 test reset)已经不见了。 由此可见,这个提交被完全被删除了,因为我将 HEAD 指向移动到了最后一个引用(用HEAD~1表示)。 $ git log commit 3eda403b2f2d650acec8c8234281918966b74b1e (HEAD -> master) Author: zyn <zyn@qq.com> Date: Fri Oct 20 23:21:00 2023 +0800init$ git reflog 3eda403 (HEAD -> master) HEAD@{0}: reset: moving to HEAD~1 15ef403 HEAD@{1}: commit: test reset 3eda403 (HEAD -> master) HEAD@{2}: commit (initial): init这个删除操作并没有影响到我们的工作文件.可通过git restore 恢复到修改前的内容 --soft 标志表示在运行 git reset 的时候修改的是 git 保存的日志。 $ cat hello.txt 123 456 zhangzhangzhang$ git status On branch master Changes to be committed:(use "git restore --staged <file>..." to unstage)modified: hello.txt
如果想要将 git 存储库中的内容恢复到先前的状态,可使用 --hard 标志(不过要谨慎使用,确保需要的文件做好备份)。
1.8、取消暂存文件
在使用Git进行版本控制时,我们经常需要将文件添加到暂存区(stage)以便提交更改。但有时候我们可能会错误地将文件添加到暂存区,或者改变了对文件的修改意图,这时候我们需要取消暂存并将文件从暂存区移除。本文将详细介绍如何在Git中取消暂存文件的方法,以帮助您管理版本控制过程中的文件更改。
-
取消暂存单个文件
如果只需要取消暂存单个文件,可以使用以下命令:
git restore --staged <文件名>
替换<文件名>为要取消暂存的文件名。执行该命令后,Git将会将文件从暂存区移除,但保留对文件的修改。
-
取消暂存多个文件
如果需要取消暂存多个文件,可以使用以下命令:
git restore --staged <文件1> <文件2> ...
替换<文件1> <文件2> …为要取消暂存的文件列表,用空格分隔每个文件名。
-
取消所有暂存文件
如果需要一次性取消所有暂存文件,可以使用以下命令:
git restore --staged .
执行该命令后,Git将会将所有暂存文件移除,但保留对文件的修改。
-
取消暂存的同时撤销修改
有时候我们希望取消暂存的同时也撤销对文件的修改,将文件恢复到上一次提交的状态。可以使用以下命令:
git restore <文件名>
替换<文件名>为要取消暂存和撤销修改的文件名。执行该命令后,Git将会将文件从暂存区移除,并且撤销对文件的修改。
-
撤销所有修改
如果希望一次性撤销所有暂存文件的修改,并将它们恢复到上一次提交的状态,可以使用以下命令:
git restore .
执行该命令后,Git将会将所有暂存文件移除,并且撤销对这些文件的修改。
总结
取消暂存文件后,可以再次使用git status命令确认文件的状态是否已正确更新。取消暂存的文件应该不再显示在暂存区中,且状态应该被修改为"未暂存的更改"。
在Git中,取消暂存文件是一个常见的操作,用于纠正错误的暂存或更改修改意图。通过使用git restore命令,我们可以轻松地取消暂存单个或多个文件,甚至可以撤销对文件的修改。
通过熟练掌握这些命令可以更好地管理Git中的文件更改和版本控制。在取消暂存文件时,请确保了解要取消暂存的文件和其相关修改的影响,并在确认操作之前进行适当的代码审查。
2、分支操作
在版本控制过程中,同时推进多个任务
- 分支的好处
同时并行推进多个功能开发,提高开发效率;
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
- 分支操作常用命令
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
2.1、查看分支
- 基本语法
git branch -v
(*代表当前所在的分区)
2.2、创建分支
- 基本语法
git branch 分支名
- 案例实操
git branch hot-fix
git branch -v
2.3、分支合并时产生冲突
在两个不同分支分别做不同修改操作
- 在master分支修改内容
--在maste分支上做修改
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ vim hello.txt
--提交到暂存区
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git add hello.txt
--提交到本地库
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git commit -m "forth main"
[master e427b0c] forth main1 file changed, 1 insertion(+)
--查看分支
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git branch -vhot-fix 2b5e6fe first modified
* master e427b0c forth main
--查看master分支上的文件内容
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ cat hello.txt
123
4567
- 切换分支到hot-fix分支并进行修改
- 基本语法
git checkout 分支名称
- 案例实操
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ git branch -v
* hot-fix 2b5e6fe first modifiedmaster e427b0c forth mainSM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ cat hello.txt
123SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ vim hello.txtSM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ git add hello.txtSM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ git commit -m "forth hot-fix"
[hot-fix bca0a5f] forth hot-fix1 file changed, 1 insertion(+)SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ cat hello.txt
123
4568
- 合并分支
- 基本语法
git merge 分支名
- 案例实操
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ git checkout master
Switched to branch 'master'SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git merge hot-fix
Auto-merging hello.txt
CONFLICT (content): Merge conflict in hello.txt
Automatic merge failed; fix conflicts and then commit the result.SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|MERGING)
$ git status
On branch master
You have unmerged paths.(fix conflicts and run "git commit")(use "git merge --abort" to abort the merge)Unmerged paths:(use "git add <file>..." to mark resolution)both modified: hello.txtno changes added to commit (use "git add" and/or "git commit -a")SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|MERGING)
$ cat hello.txt
123
<<<<<<< HEAD
4567
=======
4568
>>>>>>> hot-fixSM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|MERGING)
$ vim hello.txtSM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|MERGING)
$ git add hello.txtSM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|MERGING)
$ git commit -m "merge hot-fix"
[master 290d289] merge hot-fix
--发现后面MERGING消失,变为正常
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ cat hello.txt
123
4567
4568
冲突产生的原因:
如果一个分支的内容是在另一个分支创建时生成的,那么在只修改一个分支相同文件相同位置的内容情况下,合并时将不会产出冲突。因为Git会自动合并简单的冲突。
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
冲突的解决:
1)编辑有冲突的文件,删除特殊符号,决定要使用的内容
特殊符号:<<<<<<< HEAD=======>>>>>>> hot-fix
2)添加到暂存区
3)执行提交(注意:使用git commit命令时不能带文件名)
3、Gitee远程库实操
在Gitee创建Gitee-Test仓库
远程仓库操作基本命令
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
3.1、克隆远程仓库
- 基本语法
git clone 远程地址
- 案例实操
git clone https://gitee.com/zhangyaning666/gitee-test.git
clone会做如下操作:
1、拉取代码。2、初始化本地仓库。3、创建别名
3.2、创建远程仓库别名
- 基本语法
#查看当前所有远程地址别名
git remote -v
#为远程仓库创建别名
git remote add 别名 远程地址
- 案例实操
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git remote -vSM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git remote add ori https://gitee.com/zhangyaning666/gitee-test.gitSM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git remote -v
ori https://gitee.com/zhangyaning666/gitee-test.git (fetch)
ori https://gitee.com/zhangyaning666/gitee-test.git (push)
3.3、推送本地分支上的内容到远程仓库
- 基本语法
git push 别名 分支
- 案例实操
SM2881@SMSHA1PF3DZPEC MINGW64 /f/测试文件夹/gitee-test (master)
$ git push ori
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 316 bytes | 316.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/zhangyaning666/gitee-test.git5ab2247..1df7b38 master -> master
在git中,“push -f”的意思是“强制更新”,是“push -force”的缩写,该命令的作用是将自己本地仓库的代码直接推送至仓库,完全以该命令提交为准,之前提交都会被覆盖。远程仓库中之前的版本记录也会被清除,慎用。
3.4、拉取远程库内容
- 基本语法
git pull 远程库地址别名 远程分支名
- 案例实操
git pull ori master
4、跨团队协作-Fork应用
1)将远程仓库的地址复制发给邀请跨团队协作的人。
2)在zhang real的Gitee账号里的地址栏复制收到的链接,然后点击Fork将项目叉到自己的本地仓库。
fork成功后可以看到当前仓库信息。
3)zhang real就可以在线编辑叉取过来的文件。
4)编辑完毕后,填写描述信息并点击左下角绿色按钮提交。
5)接下来点击上方的Pull请求,并创建一个新的请求。
6)回到“时光”Gitee账号可以看到有一个Pull request请求。
进入到聊天室,可以讨论代码相关内容。。。
7)如果代码没有问题,可以合并代码。
5、SSH免密登录
我们可以看到远程仓库中还有一个SSH的地址,因此我们也可以使用SSH进行访问。
具体操作如下:
$ git initInitialized empty Git repository in F:/笔记/14.Git/1.笔记/Git-SSH/.git/$ git config user.name
zyn$ git config user.email
zyn@qq.com$ cd .git/
HEAD description info/ refs/
config hooks/ objects/--进入当前用户的家目录
$ cd$ pwd
/c/Users/10420
--删除.ssh目录
$ rm -rvf .ssh
removed '.ssh/id_rsa'
removed '.ssh/id_rsa.pub'
removed '.ssh/known_hosts'
removed '.ssh/known_hosts.old'
removed directory '.ssh'--运行命令生成.ssh秘钥目录[注意:这里-C这个参数是大写的C]
$ ssh-keygen -t rsa -C zhangyaning666
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/10420/.ssh/id_rsa):
Created directory '/c/Users/10420/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/10420/.ssh/id_rsa
Your public key has been saved in /c/Users/10420/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:BBb98gotyTriimE4bkBRtYe6esC4blmiWjRa+eNZWxY zhangyaning666
The key's randomart image is:
+---[RSA 3072]----+
| ....+o |
| . .o.. |
| . o ... |
| . .. ... . |
|+ =. . oEo |
|+B +. = ... |
|Bo*.o..oo. |
|*Booo+ +. |
|O*o.o.. |
+----[SHA256]-----+
--进入.ssh目录查看文件列表
$ cd .ssh$ ll -a
total 37
drwxr-xr-x 1 10420 197609 0 Oct 19 22:17 ./
drwxr-xr-x 1 10420 197609 0 Oct 19 22:17 ../
-rw-r--r-- 1 10420 197609 2602 Oct 19 22:17 id_rsa
-rw-r--r-- 1 10420 197609 568 Oct 19 22:17 id_rsa.pub
--查看id_rsa.pub文件内容
$ cat id_rsa.pub
ssh-rsa *****
复制id_rsa.pub文件内容,登录Gitee,点击用户头像→设置→SSH公钥
接下来再往远程仓库push东西的时候使用SSH连接就不需要登录了。
6、IDEA中使用Git本地仓库
6.1、Git忽略文件
1)Eclipse特定文件
2)IDEA特定文件
3)Maven工程的target目录
问题1:为什么要忽略他们?
与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽IDE工具之间的差异。
问题2:怎么忽略?
- 创建忽略规则文件xxxx.ignore(前缀名随便起)
这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig文件引用,建议也放在用户家目录下
xxxx.ignore文件内容如下:
# Compiled class file
*.class# Log file
*.log# BlueJ files
*.ctxt# Mobile Tools for Java (J2ME)
.mtj.tmp/# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*.classpath
.project
.settings
target
.idea
*.iml
- 在.gitconfig文件中引用忽略配置文件(此文件在Windows的家目录中)
[user]name = zynemail = zyn@qq.com
[core]excludesfile = C:/Users/10420/hh.ignore
注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”
6.2、定位Git程序
6.3 初始化本地库
选择要创建Git本地仓库的工程。
6.4 添加到暂存区
右键点击项目选择Git ->Add将项目添加到暂存区。
6.5 提交到本地库
6.6 创建分支
6.7 切换分支
在IDEA窗口的右下角,切换到master分支。
6.8 合并分支
在IDEA窗口的右下角,将hot-fix分支合并到当前master分支。
6.9 切换版本
在IDEA的左下角,点击Version Control,然后点击Log查看版本
右键选择要切换的版本,然后在菜单里点击Checkout Revision。
7、IDEA中连接Gitee远程仓库
7.1 设置Gitee账号
安装Gitee插件
点击登录。
7.2 分享工程到Gitee
来到Gitee中发现已经帮我们创建好了gitTest的远程仓库。
7.3 clone
为clone下来的项目创建一个工程,一路Next。
7.4 push
右键点击项目,可以将当前分支的内容push到Gitee的远程仓库中。
7.5 pull
右键点击项目,可以将远程仓库的内容pull到本地仓库。
Git学习链接
Git 大全 - Gitee
相关文章:

Git基本命令和使用
文章目录 1、Git本地库命令1.1、初始化本地库1.2、设置用户签名1.3、查看本地库状态1.4、将工作区的修改添加到暂存区1.5、将暂存区的修改提交到本地库1.6、历史版本1.7、取消commit1.8、取消暂存文件 2、分支操作2.1、查看分支2.2、创建分支2.3、分支合并时产生冲突 3、Gitee远…...

50springboot私人健身与教练预约管理系统
大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…...

测试Android webview 加载本地html
最近开发一个需要未联网功能的App, 不熟悉使用Java原生开发界面,于是想使用本地H5做界面,本文测试了使用本地html加载远程数据。直接上代码: MainActivity.java package com.alex.webviewlocal;import androidx.appcompat.app.AppCompatAct…...
ubuntu安装pgsql
ubuntu安装postgresSQL 官网地址: https://www.postgresql.org/download/ 1.安装 # 添加源 sudo sh -c echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list # 安装数字签名 w…...

利用ArcGIS获取每一个冰川的中心位置经纬度坐标:要素转点和要素折点转点的区别
问题概述:下图是天山地区的冰川的分布,我们可以看到每一条冰川是一个面要素,要求得到每一个冰川(面要素)的中心经纬度坐标。 1.采用要素转点功能 选择工具箱的【数据管理工具】-【要素】-【要素转点】。完成之后再采用…...

数据结构中的七大排序(Java实现)
目录 一、直接插入排序 二、希尔排序 三、直接选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 一、直接插入排序 思想: 定义i下标之前的元素全部已经有序,遍历一遍要排序的数组,把i下标前的元素全部进行排序࿰…...
深度学习基础算法
算法 1.K近邻算法 机器学习--K-近邻算法(KNN)_k近邻-CSDN博客 2. 数据库样本: CIFAR-10 CIFAR-10数据集(介绍、下载读取、可视化显示、另存为图片)_cifar10数据集-CSDN博客...
LuatOS-SOC接口文档(air780E)-- ir - 红外遥控
ir.sendNEC(pin, addr, cmd, repeat, disablePWM)# 发送NEC数据 参数 传入值类型 解释 int 使用的GPIO引脚编号 int 用户码(大于0xff则采用Extended NEC模式) int 数据码 int 可选,引导码发送次数(110ms一次࿰…...

Java虚拟机常见面试题总结
梳理Java虚拟机相关的面试题,主要参考《深入理解Java虚拟机 JVM高级特性与最佳实践》(第2版, 周志明 著)一书,其余部分整合网络相关内容。注意,关于Java并发编程的面试题因为内容较多,单独整理。Java基础相关的面试题可以参考Java…...

NVIDIA NCCL 源码学习(十一)- ring allreduce
之前的章节里我们看到了nccl send/recv通信的过程,本节我们以ring allreduce为例看下集合通信的过程。整体执行流程和send/recv很像,所以对于相似的流程只做简单介绍,主要介绍ring allreduce自己特有内容。 单机 搜索ring 在nccl初始化的过…...
前端--性能优化【上篇】--网络优化与页面渲染优化
一、网络优化 1、DNS预解析 link标签的rel属性设置dns-prefetch,提前获取域名对应的IP地址 2、CDN(网络分发系统) 用户与服务器的物理距离对响应时间也有影响。 内容分发网络(CDN)是一组分散在不同地理位置的 web…...
git 删除分支
目录 1,查看分支2,删除本地分支3,删除远程分支 1,查看分支 # 查看本地分支 git branch# 查看远程分支 git branch -r# 查看所有分支 git branch -a2,删除本地分支 # -d 是 --delete 的简写,会在删除前检查…...
SQLite Write-ahead Logging
1. 概述2. WAL如何工作 2.1 检验指示(Checkpointing)2.2 并发性(Concurrency)2.3 性能考虑(Performance Considerations)3. 激活并配置WAL模式 3.1 自动checkpoint3.2 应用开始的checkpoint3.3 WAL模式的持久性4. 只读数据库5. 避免过大的WAL文件6. WAL索引的共享内存应用7. 不…...

手机有什么爬虫App工具?
随着智能手机的普及和应用的繁盛,越来越多的人开始对手机App进行数据爬取和分析。那么,在进行手机App爬虫的过程中,我们可以借助哪些工具呢?让我们一起来了解一下吧! 1、Fiddler Fiddler是一款功能强大的网络调试工具…...
290_C++_截取的一部分FTP视频上传代码,任务信息中读取视频帧数据并将其提供给 libcurl 用于上传。
1、这些结构体和枚举类型的设计是为了在上传过程中有效地存储和传递不同类型的任务信息,以便在上传操作中使用这些信息来管理和跟踪不同类型的上传任务。它们提供了不同类型上传任务所需的特定信息和状态变量 enum UploadTaskType {UTT_Common,UTT_Video };struct UploadInfo…...

读《Gaitset: Regarding gait as a set for cross-view gait recognition》
2019在AAAI(还有一版叫GaitSet: Regarding Gait as a Set for Cross-View Gait Recognition,大体上一样) 摘要 现有的步态识别方法要么利用步态模板,难以保存时间信息,要么利用保持不必要的顺序约束的步态序列&#x…...

驱动实现LED点灯
demo.c #include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/uaccess.h> #include <linux/io.h> #include "head.h" //定义三个指针指向映射后的虚拟内存 unsigned int *vir_moder; unsigned …...

【Reinforcement Learning】Ubuntu中mujoco210 mujoco_py D4RL安装及错误解决
Ubuntu中mujoco210 mujoco_py D4RL安装及错误解决 本文根据一篇知乎文章链接在此进行配置,记录在配置过程中遇到的一些问题,原文作者的教程很详细,在此对原作者表示感谢~ 直接进行知乎原文的第2.2 有效安装过程(避坑) 2.注意上…...

设计模式截图记录
设计模式截图记录...
代碼隨想錄算法訓練營|第三十九天|738.单调递增的数字、968.监控二叉树、第八章 贪心算法總結。刷题心得(c++)
目录 讀題 738.单调递增的数字 自己看到题目的第一想法 看完代码随想录之后的想法 968.监控二叉树 自己看到题目的第一想法 看完代码随想录之后的想法 738.单调递增的数字 - 實作 思路 Code 968.监控二叉树 - 實作 思路 Code 贪心算法 總結 贪心理论基础 貪心…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...