【玩转Git三剑客笔记】第一章 Git基础

news2024/12/23 9:02:08

第一章 Git基础

    • 1.综述
    • 2.安装Git
    • 3.使用Git之前需要做的最小配置
    • 4.创建第一个仓库并配置local用户信息
      • 1.创建Git仓库
      • 2.设置Git最小配置
    • 5.通过几次commit来认识工作区和暂存区
      • 1.将工作区中所有已经被git追踪的文件一起添加到暂存区
      • 2.git log查看提交日志
    • 6.给文件重命名的简便方法
      • 方法一:三个步骤
      • 方法二:一条指令
      • 关于大小写的问题:
    • 7.通过git log查看版本演变历史
      • 1.git log的扩展使用
      • 2.创建临时分支,并在临时分支上进行修改提交
    • 8.gitk:通过图形界面工具来查看版本历史
    • 9.探秘.git目录
      • 1.HEAD文件
      • 2.config文件,存储git仓库的配置信息
      • 3. refs
        • heads
        • tags
      • 4.objects中有三种对象类型:commit,blob,tree
    • 10.commit、tree和blob三个对象之间的关系
    • 11.小练习:数一数tree的个数
    • 12.分离头指针情况下的注意事项
      • 分离头指针的危险:
      • 分离头指针的好处
    • 13.进一步理解HEAD和branch

前言:本系列笔记是基于极客时间的《玩转Git三剑客》专栏的笔记。

1.综述

Git是一种分布式的代码管理工具。

2.安装Git

git官网:Git - Installing Git
在这里插入图片描述

3.使用Git之前需要做的最小配置

我们在使用git前首先要设置git 的用户名和邮箱,这样git在版本管控的时候,就可以知道哪些变更、改动是哪个用户进行的改动,一目了然。(只有做了相关配置,git才能进行版本控制)

1.配置基本的用户名,用户邮箱

$ git config --global user.name 'your_name'
$ git config --global user.email 'youre_mail@domain.com'

2.config的三个作用域

#缺省等于local
$ git config --local  #只针对某个仓库有效,对其他仓库无效。作用域为局部
$ git config --global #global对当前用户所有仓库有效
$ git config --system #system对系统所有登录的用户都有效

3.显示config的配置,加–list

$ git config --list --local
$ git config --list --global
$ git config --list --system

在这里插入图片描述

小结

添加配置

git config [–local | --global | --system] user.name ‘Your name’
git config [–local | --global | --system] user.email ‘Your email’

查看配置

git config --list [–local | --global | --system]

区别

local:区域为本仓库
global: 当前用户的所有仓库
system: 本系统的所有用户

4.创建第一个仓库并配置local用户信息

1.创建Git仓库

两种场景:

1.把已有的项目代码纳入Git管理

$ cd 项目代码所在的文件夹
$ git init 

2.新建的项目直接用Git管理

$ cd 某个文件夹
$ git init your_project #your_project就是你要新建的项目,会在当前路径下创建与项目名称相同的文件夹
$ cd your_project

在这里插入图片描述

2.设置Git最小配置

为了区分config的local设置和global设置不同时,仓库采用哪个设置,我们这里用local进行设置。(结论:局部优先于全局)

在这里插入图片描述

3.做一次简单的提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EeXXUZzS-1682953511862)(C:\Users\Administrator.DESKTOP-I4A8DOF\AppData\Roaming\marktext\images\2022-04-21-23-54-53-image.png)]

5.通过几次commit来认识工作区和暂存区

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

1.将工作区中所有已经被git追踪的文件一起添加到暂存区

$ git add -u

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jbsv9K9z-1682954068478)(C:\Users\Administrator.DESKTOP-I4A8DOF\AppData\Roaming\marktext\images\2022-04-22-00-16-04-image.png)]

2.git log查看提交日志

$ git log
commit abe254ce11b429b6f19ff8b5cbc84e4e27de242c (HEAD -> master)
Author: Jack-song-gif <562054870@qq.com>
Date:   Fri Apr 22 00:15:45 2022 +0800

    Add refering projects

commit 675f2d69f9a0e197e7338bc7dd61bd81a6913aa2
Author: Jack-song-gif <562054870@qq.com>
Date:   Fri Apr 22 00:05:56 2022 +0800

    Add js

commit 0cbe4a5ddd935fbdc380bb51b23cc5798ca6430f
Author: Jack-song-gif <562054870@qq.com>
Date:   Fri Apr 22 00:03:49 2022 +0800

    Add style.css

commit 57a9d1467bbd12c7e3507c3d21bfdc926e83ddda
Author: Jack-song-gif <562054870@qq.com>
Date:   Thu Apr 21 23:59:07 2022 +0800

    Add index+logo

commit e2ed4a8b41dd52cb8e31d345f9b4e41e50d3c92a
Author: Jack-song-gif <562054870@qq.com>
Date:   Thu Apr 21 23:44:13 2022 +0800

    Add readme

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CnrSUnXv-1682954068480)(C:\Users\Administrator.DESKTOP-I4A8DOF\AppData\Roaming\marktext\images\2022-04-22-00-17-36-image.png)]

6.给文件重命名的简便方法

场景:给git-learning目录下的readme文件重命名

方法一:三个步骤

 mv readme readme.md
 git add readme.md
 git rm readme

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oix6CqYz-1682954068482)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502220148701.png)]

方法二:一条指令

 git mv readme readme.md

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GI7yD0kZ-1682954068490)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502220225217.png)]

关于大小写的问题:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o9a5lUBt-1682954068500)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502221355125.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4FgcI773-1682954068502)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502221448721.png)]

网友补充:

针对“零维”和“Sleeves” git mv 命令大小写敏感问题的补充实验

我使用的是Windows系统,系统的大小写是不敏感的。
core.ignorecase 默认配置是 true

基于此配置做 git mv readme Readme 操作的话,可以在 git status 看到文件名的变化。
但是,同样基于此配置,做 mv readme Readme 操作后,再使用 git status 查看文件状态,发现 status 仍为 clean 的状态。

当 core.ignorecase 配置修改为 false 时,两个操作的执行结果正好相反。

当切换到Ubuntu这种大小写敏感的系统上,不管 core.ignorecase 配置是什么,使用 git mv 和 mv 命令的结果都是一样的。

OS大小写敏感问题对 git mv 命令和 git status 命令产生了什么样的影响,想不出来可以怎么解释清楚,还希望可以有小伙伴可以继续来讨论。

总结:

直接一步修改文件名:git mv file newfile

先用mv修改,再用git管理:mv file newfile ; git add newfile;git rm file

撤销工作区和暂存区的全部修改,回退到版本库最后一次commit状态:git reset --hard

也可以指定回退到具体某一次commit:git reset --hard commitID

7.通过git log查看版本演变历史

1.git log的扩展使用

git log --oneline  #只显示commit ID和commit message,显示一行
git log -n4 #显示最近四次提交的日志
git log -n4 --oneline #组合使用
git log --oneline -n4 #组合使用
git log #默认查看的是当前分支的日志
git log --all #查看所有分支的日志,--all表示所有分支
git log --all --graph  #图形化查看版本演进历史,可以查看父子关系
git log --all --graph --oneline
git log --all --graph --oneline -n4 #n4表示显示所有分支的最近四个提交
#example
$ git log --oneline
abe254c (HEAD -> master) Add refering projects
675f2d6 Add js
0cbe4a5 Add style.css
57a9d14 Add index+logo
e2ed4a8 Add readme

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z8dF4y2B-1682954068503)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502222722585.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w7mtjcZ2-1682954068505)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502222906375.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-paM4mJSR-1682954068508)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502223057254.png)]

2.创建临时分支,并在临时分支上进行修改提交

git checkout -b temp(新分支名)  commitID
或者:
git checkout -b temp master #基于master分支的最新提交新建temp临时分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V2lI5zKs-1682954068510)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502224208673.png)]

git log默认查看当前分支的日志

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TioDIKxF-1682954068512)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502224759929.png)]

git log --all 查看所有分支的日志

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pvb3TvgN-1682954068513)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502224921287.png)]

 git log --all --graph  #图形化查看版本演进历史,可以查看父子关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T4ltra62-1682954068516)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502225023973.png)]

git log --all --graph --oneline

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8OHPMp2A-1682954068517)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502225346880.png)]

git log --all --graph --oneline -n4 #n4表示显示所有分支的最近四个提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ir6Liah4-1682954068519)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502225605462.png)]

3.如果想查看详细的git log的使用

git help --web log #通过浏览器查看文档

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0FqpUzuZ-1682954068521)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502225920443.png)]

8.gitk:通过图形界面工具来查看版本历史

gitk

在这里插入图片描述

9.探秘.git目录

1.HEAD文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2vKlsgPF-1682954068525)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502232707183.png)]

2.config文件,存储git仓库的配置信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-la1ebJtk-1682954068526)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502233327679.png)]

修改当前仓库的用户名和邮箱

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4VWrTaT3-1682954068527)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502233613738.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ycr8L3To-1682954068528)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502235138004.png)]

3. refs

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0fqK5Ifz-1682954068530)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502235523795.png)]

heads

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zOFFxV9R-1682954068531)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220502235906204.png)]

git cat-file -t 对象名 #查看对象类型
git cat-file -p 对象名 #查看对象内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dp5FhRFy-1682954068533)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503000326249.png)]

tags

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1OquoH8E-1682954068534)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503000852578.png)]

4.objects中有三种对象类型:commit,blob,tree

首先切换到objects文件夹,可以发现里面有两种文件夹一种是02类型,另一种是pack文件夹

cd objects/
ls  -al

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XrheSpH9-1682954068536)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503001530898.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5D94cnUx-1682954068537)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503001811244.png)]

注意:在git眼里只要文件的内容相同就是唯一的blob

10.commit、tree和blob三个对象之间的关系

一个commit就对应一个tree树,一个tree就是存储某个commit的快照,改快照就是当前commit对应的仓库内所有文件夹,文件的信息。(即tree记录在那个时间点,文件夹和文件的信息)

tree树就是文件夹,文件夹就是树

blob跟文件名无关,只要文件内容一样就是唯一的blob

网友解读:

现在我们应该明白git底层的运行流程了,当我们添加或者修改了文件并且add到Stage Area之后,首先会根据文件内容创建不同的blob,当进行提交之后马上创建一个tree组件把需要的blob组件添加进去,之后再封装到一个commit组件中完成本次提交。在将来进行reset的时候可以直接使用git reset --hard xxxxx可以恢复到某个特定的版本,在reset之后,git会根据这个commit组件的id快速的找到tree组件,然后根据tree找到blob组件,之后对仓库进行还原,整个过程都是以hash和二进制进行操作,所以git执行效率非常之高。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8DETKMva-1682954068539)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503002652669.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ivaILNO7-1682954068540)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503004626964.png)]

11.小练习:数一数tree的个数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U3HMOSsu-1682954068541)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503004804480.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-96mcGhnH-1682954068543)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503005617599.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QeD4oCwZ-1682954068545)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503010216402.png)]

$ git cat-file -t 2d832d9044
blob
$ git cat-file -p 2d832d9044
hello,world

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dgK2AqhX-1682954068547)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503012020257.png)]

网友总结:

没有文件也就是没有blob对象的目录是不会被git管理的,因为git要对文件进行版本管理,所以没有必要对空目录生成对象。基于这一点,readme文件的全路径是这样:[仓库根目录]/doc/readme。那么tree的数量与全路径中“/”的数量一致。

我的总结

git add操作会生成blob对象

git commit操作后才会生成tree,因为tree的作用就是为了记录commit快照。

12.分离头指针情况下的注意事项

你可以直接用git checkout commitID切换到某一个提交上,此时并没有和任何分支进行挂钩。

分离头指针的危险:

假设你基于某个提交进行了一些修改,此时你接收到紧急任务,需要fig一个bug,然后你就切换到master分支进行修改bug了,而原来基于某个提交的变更就会被git当作垃圾给丢弃。

分离头指针的好处

当你想要进行一些变更,但是只是想要实验一下看看效果,你就可以分离头指针到某个提交,然后进行修改,不满意效果就直接切换到别的分支,那些你原来基于提交的修改就会被丢弃。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6tqgRcSB-1682954068549)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503013408063.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5POH3G4W-1682954068551)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503013652378.png)]

将基于commit修改的变更保存到新分支

git branch <new-branch-name> 1df216a #1df216a是变更后的最新提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-okY1t16z-1682954068553)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503014400610.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BYSoyCx5-1682954068555)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503014724171.png)]

13.进一步理解HEAD和branch

1.我们通过一个场景来演示:

#新建一个fix_readme分支,并且切换到新分支
git checkout -b fix_readme fix_css

$ git checkout -b fix_readme fix_css
Switched to a new branch 'fix_readme'
$ git branch -av #查看所有分支,发现头指针指向fix_readme分支
  fix_css    1df216a Backgroud to green
* fix_readme 1df216a Backgroud to green
  master     abe254c Add refering projects
  temp       025f501 Add zhangsan
$ cat .git/HEAD
ref: refs/heads/fix_readme
#本质上HEAD还是指向某一个提交的,HEAD指向的是分支的最新提交。
$ git cat-file -t refs/heads/fix_readme 
commit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LFyQWV78-1682954068557)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503145235020.png)]

2.使用git diff比较两次提交的差异

 $ git diff 1df216 675f2d69f9  #根据ID比较两次提交
 $ git diff HEAD HEAD^1   #根据头指针比较当前提交与前一次提交(父提交)
 $ git diff HEAD HEAD~n   #比较当前提交和前n次提交
 #注:git diff a b 显示的差异是b-a的结果,也就是b相对a没有的用-显示,b比a多的用+显示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RsA4wSCb-1682954068559)(D:\数字媒体技术\程序员资料\笔记汇总\玩转Git三剑客笔记.assets\image-20220503144942056.png)]

扩展阅读:

git dif

repo

repo1

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

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

相关文章

密码学【java语言】初探究

文章目录 前言一 密码学1.1 古典密码学1.1.1 替换法1.1.2 移位法1.1.3 古典密码破解方式 二 近代密码学2.1 现代密码学2.1.1 散列函数2.1.2 对称密码2.1.3 非对称密码 二 凯撒加密的实践2.1 基础知识&#xff1a;ASCII编码2.2 ascii编码演示2.3 凯撒加密和解密实践2.4 频率分析…

安装Ubuntu22.04虚拟机的一些常见问题解决方法

文章目录 VirttalBox 开启共享剪切板文件夹、拖放的功能VirtualBox 安装 ubuntu后安装增强工具无效的解决办法解决ubuntu您没有权限查看“ 某某文件夹”的内容所需的权限linux更换源的两种方法[如何在 Ubuntu 20.04 上安装 Visual Studio Code - ](https://zhuanlan.zhihu.com/…

【Java入门合集】第二章Java语言基础(二)

【Java入门合集】第二章Java语言基础&#xff08;二&#xff09; 博主&#xff1a;命运之光 专栏JAVA入门 学习目标 掌握变量、常量、表达式的概念&#xff0c;数据类型及变量的定义方法&#xff1b; 掌握常用运算符的使用&#xff1b; 掌握程序的顺序结构、选择结构和循环结构…

权限提升:不带引号服务路径 || 不安全的服务权限.

权限提升&#xff1a;不带引号服务路径 || 不安全的服务权限. 权限提升简称提权&#xff0c;由于操作系统都是多用户操作系统&#xff0c;用户之间都有权限控制&#xff0c;比如通过 Web 漏洞拿到的是 Web 进程的权限&#xff0c;往往 Web 服务都是以一个权限很低的账号启动…

Nature:李龙等揭示抑郁症模型中社交压力阻断社交奖赏的神经环路机制

在人类社会中&#xff0c;社会压力尤其是创伤性社会经历会导致抑郁症、社交焦虑及创伤后应激障碍等多种精神疾病【1】。在抑郁症研究领域&#xff0c;有研究表明社会创伤会损害大脑负责奖赏的脑区功能&#xff0c;使社交活动变得不再有奖赏性&#xff0c;从而导致严重的社交回避…

【ShenYu系列】ShenYu Dubbo插件全流程源码解析

网关启动 在ShenyuConfiguration注入ShenyuWebHandler。 Bean("webHandler")public ShenyuWebHandler shenyuWebHandler(final ObjectProvider<List<ShenyuPlugin>> plugins, final ShenyuConfig config, Lazy final ShenyuLoaderService shenyuLoaderS…

初识Go语言20-包与工程化【用go mod管理工程、包引入规则、init调用链、可见性】

文章目录 包与工程化用go mod管理工程包引入规则init调用链可见性 包与工程化 用go mod管理工程 初始化项目: go mod init $module_name$module_name和目录名可以不一样。上述命令会生成go.mod文件&#xff0c;该文件内容形如&#xff1a; module go-coursego 1.17require (…

HarmonyOS服务卡片开发-文件组织与配置学习

HarmonyOS服务卡片开发-文件组织与配置学习 1.文件组织 目录结构 JS服务卡片(entry/src/main/js/Component)的典型开发目录结构如下&#xff1a; 目录结构中文件分类如下&#xff1a; .hml结尾的HML模板文件&#xff0c;这个文件用来描述卡片页面的模板布局结构。 .css结…

云计算(Cloud Computing)

一、从技术概念理解云计算 早期的云计算就是虚拟化主机上的分布式计算&#xff0c;现阶段的云计算&#xff0c;已经不单单是一种分布式计算&#xff0c;而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等计算机技术混合演进并跃升的结果。云计算…

飞书接入ChatGPT,打造属于自己的智能问答助手

文章目录 前言环境列表视频教程1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 转载自远控源码文章&#xff1a;飞书接入ChatGPT - 将ChatGPT集…

太酷了,库昊

昨天晚上凌晨3点30&#xff0c;勇士和国王的第7场比赛开打。 在上一局在勇士主场干翻勇士后&#xff0c;国王队的信心倍增&#xff0c;他们用自己的节奏一次次击溃勇士&#xff0c;特别是今天的前两节&#xff0c;国王能能够回应勇士的进球&#xff0c;防守也更有侵略性。今天不…

Spring第九阶段:Spring的注解功能

注解功能 1、注解配置Dao、Service、Controller组件 通过注解分别创建Dao、Service、Controller Spring配置bean的常用注解有 Controller 配置web层的组件 Service 配置Service组件 Repository 配置Dao组件 Component 配置JavaBean( 除Service , Dao , Controller组件之外的…

台积电和三星都变脸了,美国图谋失败,外媒:拜登心都碎了

美国的图谋甚大&#xff0c;然而美国的图谋却又如此迅速的浮现&#xff0c;看穿美国图谋的台积电和三星两家芯片企业如今不干了&#xff0c;这将破坏美国的计划&#xff0c;让美国无可奈何。 一、美国精心编织的大网 从数年前开始&#xff0c;美国就要求台积电和三星上交机密数…

想学编程但没有好的资料 来这 Python 爬取信息并写入数据,最详细教程

提示一下&#xff1a;我这个中一些用import引用的软件包&#xff0c;你们小白记得要下载哟 不然的话会报错的哟&#xff01; 下载软件包很简单的! 话不多说&#xff0c;直接开始… from selenium.webdriver.common.by import By from selenium import webdriver import re, …

5月2日第壹简报,星期二,农历三月十三

5月2日第壹简报&#xff0c;星期二&#xff0c;农历三月十三坚持阅读&#xff0c;静待花开1. “港车北上”政策公布&#xff1a;6月1日起接受申请&#xff0c;7月1日起可驶入广东&#xff0c;将惠及45万香港车主。2. 全球女性第一人&#xff01;董红娟登顶全部14座8000米级高峰…

nvm 安装 node,配置 yarn,cnpm

nvm 安装 node&#xff0c;配置 yarn, cnpm nvmnodeyarncnpm nvm 是什么&#xff1f;nodejs 的版本管理工具&#xff0c;为了解决 node.js 各种版本存在不兼容现象可以通过它安装和切换不同版本的 node.js重要&#xff1a;完全卸载本地 node下载链接 卸载完成之后&#xff0c;…

初识C++之智能指针

目录 一、智能指针的概念 二、RAII 三、 智能指针的拷贝构造 1. 智能指针的拷贝构造问题 2. C库中的智能指针 2.1 auto_ptr 2.2 unique_ptr 2.3 shared_pt 2.4 weak_ptr 四、shared_ptr的循环引用问题 五、 定制删除器 一、智能指针的概念 在了解智能指针的概念前&…

Java连接与操作Perforce

对于源码控管的基本使用来说&#xff0c; 使用Perforce的客户端工具就可以了&#xff0c; 但是某些应用场景下可能需要使用代码来与Perforce服务器进行交互&#xff0c; 比如&#xff1a; 自动部署流程中的自动取代码&#xff08;该场景一般也可以使用P4命令行工具实现&#x…

Windows共享内存与死锁

实验一 一、实验内容或题目&#xff1a; 利用共享内存完成一个生产者进程和一个消费者进程的同步。 二、实验目的与要求&#xff1a; 1、编写程序&#xff0c;使生产者进程和消费者进程通过共享内存和mutex来完成工作同步。 2、了解通过操作系统接口调用&#xff0c;实现通…

Linux字符设备驱动

前言 代码结构简单&#xff0c;旨在用最简单的原理理解最主要的框架逻辑&#xff0c;细节需要自行延伸。 -----------------学习的基础底层逻辑 基础步骤 开发linux内核驱动需要以下4个步骤&#xff1a; 编写驱动代码编写makefile编译和加载驱动编写应用程序测试驱动 由于硬…