Git和GitHub
文章目录
- 1.Git介绍
- 2. 常用命令
- 3. Git分支操作
- 4. Git团队协作机制
- 5. GitHub操作
- 6. IDEA集成Git
- 7.IDEA操作GitHub
- 8. Gitee
1.Git介绍
Git免费的开源的分布式版本控制系统,可以快速高效从小到大的各种项目
Git易于学习,占地面积小,性能快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。
什么是版本控制? 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
为什么需要版本控制? 个人开发过渡到团队协作。
版本控制工具
集中式版本控制工具
CVS,SVN…,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。优点:方便管理权限,维护方便 缺点:中央服务器的单点故障。
本库是集中的存放于中央服务器的。干活的时候,先要去中央服务器里领取最新的版本,然后在开始干活。干完活在将自己的版本上传到中央服务器。
分布式版本控制工具
Git,Mercurial…,客户端提取是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。
服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的),每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
分布式每个人的电脑上都可以直接拷贝完整的代码版本。而集中式只能拷贝自己需要的。
分布式的服务器挂掉之后,不会影响工作。而集中式的服务器挂掉之后,根本就没法进行工作。
Git和代码托管中心(远程库):
- 局域网 GitLab
- 互联网 GitHub,Gitee
流程:工作区(写代码) --git add–> 暂存区(临时存储) – git commit–> 本地库(历史版本) --git push–> 远程库(GitHub)
Git安装:
-
高速下载:
https://npm.taobao.org/mirrors/git-for-windows/ -
next -> 选择安装目录 -> 选项配置(默认) next -> next -> 为git选择一个默认编辑器,一般选择Vim(默认)
-> Let Git decide(默认) -> 是否修改环境变量,选第一个Use Git from Git Bash only
-> 选择后台客户端连接协议Use the OpenSSL Library(默认) -> 配置行末换行符Checkout Win…(默认)
-> 选择Git终端类型Use MinTTY(默认) -> 选择pull合并的模式Default(默认)
-> 选择凭据管理器Git Credential…(默认) -> 其他配置(默认都勾选) -> 实验室功能(不勾选,不成熟) -> install
2. 常用命令
| 命令 | 作用 |
|---|---|
| git config --global user.name 用户名 | 设置用户签名 |
| git config --global user.email 邮箱 | 设置用户签名 |
| git init | 初始化本地库 |
| git status | 查看本地库状态 |
| git add 文件名 | 添加到暂存区 |
| git commit -m “日志信息” 文件名 | 提交到本地库 |
| git reflog | 查看历史记录 |
| git reset --hard 版本号 | 版本穿梭 |
-
首次安装,要设置一下签名(区分不同操作者),否则提交代码报错,这个和登录GiHub没有任何关系。
C:\Users\[user]\.gitconfig文件里可以看到配置的 -
初始化本地库
进入
D:\Learning\Git-Space\git-demo项目文件夹,执行git init,会生成一个.git隐藏的文件夹 -
查看本地库状态,
git status-
没有任何东西:On branch master,在master分支中。No commits yet,没有提交过任何东西。nothing to commit,没有什么东西需要提交。
-
新增hello.txt文件:多了一行 Untracked files…hello.txt(红色的),未被追踪的文件,只是存在于工作区。
-
-
添加到暂存区(Git追踪文件的过程)
git add hello.txt有个警告,Git帮我们转换了末尾换行符再次查看本地库状态,Changes to be committed…new file: hello.txt(绿色的),git追踪到了这个文件,文件只是存在于暂存区(可以删掉
git rm --cached hello.txt,只是暂存区删掉,工作区还是有的) -
提交到本地库,将暂存区的文件提交到本地库,形成自己的一个历史版本
git commit -m "first commit" hello.text[master (root-commit) 20eda81] first commit ,20eda81就是版本号,后面是描述。
1 file changed, 5 insertions(+),一个文件被改变,5行内容被插入。create mode 100644 hello.txt。再次查看本地库状态,No commits yet没有了,只有On branch master,nothing to commit, working tree clean 没有东西需要再次提交,工作区是干净的
-
查看版本信息
git reflog20eda81 (HEAD -> master) HEAD@{0}: commit (initial): first commitgit log更详细点,可以看作者,提交时间等,完整版的版本号。 -
修改文件,在文件第一行加了几个2
-
再次查看本地库状态,Changes not staged for commit…modified:hello.txt(红色的) ,文件被修改了,而且还没有被添加到暂存区
-
添加暂存区
git add hello.txt,再次查看本地库状态,Changes to be committed:modified:hello.txt(绿色的) -
提交本地库
git commit -m "second commit" hello.txt,[master b205e79] second commit, b205e79第二次提交的版本号。1 file changed, 1 insertion(+),1 deletion(-)。 一个文件被改变,一行内容被插入,一行内容被删除。(Git是以行为单位维护的,先删除原先的行再插入新的!!),再次查看本地库状态,On branch master,nothing to commit, working tree clean和第一次提交的显示一样,又是干净的了。 -
查看版本信息
git reflog就会有两个版本信息了b205e79 (HEAD -> master) HEAD@{0}: commit: second commit,head当前指针指向第二个版本,
cat hello.txt查看文件是有修改后的。20eda81 HEAD@{1}: commit (initial): first commit。
-
-
历史版本⭐
git refloggit log-
查看日志
b205e79 (HEAD -> master) HEAD@{0}: commit: second commit 当前指针在第二个版本
20eda81 HEAD@{1}: commit (initial): first commit
-
版本穿越(例如我感觉文件里面添加的2不太好,要回到一号版本去),
git reset --hard 20eda81HEAD is now at 20eda81 first commit
-
查看日志
20eda81 (HEAD -> master) HEAD@{0}: reset: moving to 20eda81 这里也生成了一个日志
b205e79 HEAD@{1}: commit: second commit
20eda81 (HEAD -> master) HEAD@{2}: commit (initial): first commit 当前指针在第一个版本
-
查看文件
cat hello.ext文件中第二次在第一行添加的2不见了,回到了第一次的版本,即工作区的文件回到了第一次版本的内容!
底层不是复制保存了很多副本,而是在本地库中保持了很多日志信息版本信息,调用HEAD指针指向不用的版本
-
3. Git分支操作
分支⭐:在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是 一个单独的副本。(分支底层其实也是指针的引用)
好处:
- 同时并行推进多个功能开发,提高开发效率。
- 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支的命令:
| 命令名称 | 作用 |
|---|---|
| git branch 分支名 | 创建分支 |
| git branch -v | 查看分支 |
| git checkout 分支名 | 切换分支 |
| git merge 分支名 | 把指定的分支合并到当前分支上 |
| git branch -d 分支名 | 删除分支 |
-
查看分支
git branch -v*master(绿色) 20eda81 first commit
-
创建分支,例如
git branch hot-fix增加热修分支再次查看分支:hot-fix 20eda81 first commit,*master(绿色) 20eda81 first commit 两个了!
-
切换分支
git checkout hot-fix(输入命令的上一行最后面master变成了hot-fix)再次查看分支:*hot-fix(绿色) 20eda81 first commit,master 20eda81 first commit
在hot-fix分支下修改文件,在第二行加几个3,修改后一样要进行
git add hello.txt,git commit -m "hot-fix first commit" hello.txt。查看版本信息 :af41acb (HEAD -> hot-fix) HEAD@{0}: commit: hot-fix first commit如果再切换到master分支,则在hot-fix分支修改的内容,在master分支工作区是看不到的。
-
合并分支⭐
-
正常合并
切换到master分支,执行
git merge hot-fix把指定的分支合并到当前分支上!!Updating 20eda81…af41acb Fast-forward
hello.txt | 2 ± 1 file changed, 1 insertion(+), 1 deletion(-),一行插入,一行删除,则修改了一行。
这时master分支的工作区文件能看到在hot-fix分支在第二行添加的3的信息了!!
-
冲突合并
-
冲突的原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。
-
模拟冲突:在master分支hello.txt第三行添加4 add commit,在hot-fix分支hello.txt第三行添加5 add commit
-
切回master分支合并:执行
git merge hot-fix,就会冲突了,看下面的日志:Auto-merging hello.txt CONFLICT (content): Merge conflict in hello.txt (合并冲突在hello.txt文件中)
Automatic merge failed; fix conflicts and then commit the result. (自动合并失败)
输入命令的上一行最后面master变成了master|MERGING,查看状态 both modified: hello.txt (红色)
-
需要我们手动合并,打开hello.txt文件
hello git sutong hello git sutong 33333 <<<<<<< HEAD (HEAD到等号之间是当前分支的代码) hello git sutong 44444 ======= (等号到hot-fix之间是要合并的代码!!) hello git sutong 55555 >>>>>>> hot-fix hello git sutong hello git sutong手动合并(例如我们想要hot-fix分支里面的,合并完要add,commit提交的时候不能带文件名!!):
hello git sutong hello git sutong 33333 hello git sutong 55555 hello git sutong hello git sutong合并只会修改master分支hello.txt文件内容,hot-fix不会变。(最后解决冲突的时候在我们的分支里面解决)
master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由 HEAD 决定的。所以创建分支的本质就是多创建一个指针。 HEAD 如果指向 master,那么我们现在就在 master 分支上。 HEAD 如果指向hot-fix,那么我们现在就在 hot-fix 分支上。所以切换分支的本质就是移动 HEAD 指针。
HEAD指针指向的是当前分支,分支指针指向的是当前分支在的具体版本。
-
-
4. Git团队协作机制
如果想要团队协作机制,则需要遇到代码托管中心了,即GitHub
-
团队内协作

-
跨团队协作

5. GitHub操作
-
创建远程库
登录Github-> 右上角加号点击New Repository -> 填写远程库名字(一般和本地库名称一样)选择公有库/私有库 填写描述
-> create repository -> 有两个连接 https/SSH
-
远程仓库操作命令
| 命令名称 | 作用 |
|---|---|
| git remote -v | 查看当前所有远程地址别名 |
| git remote add 别名 远程地址 | 起别名 |
| git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
| git clone 远程库地址 | 将远程仓库的内容克隆到本地 |
| git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与 当前本地分支直接合并 |
使用命令:
-
起别名,远程库链接太长了起个别名代替(别名一般和库名一致)
git remote add git-demo https://github.com/Mrzhugq/git-demo.git -
查看当前所有远程地址别名
git remote -vgit-demo https://github.com/Mrzhugq/git-demo.git (fetch)push,clone,pull都可以用这个别名git-demo https://github.com/Mrzhugq/git-demo.git (push) -
推送到远程库,最小单位的分支 ,
git push git-demo master(慢)第一次的话会弹出一个窗口,登录GitHub,选择右边的Token,要使用token登录(怎么创建token百度),根据提示输入用户名密码,最后显示几个100%就成功了,可能很慢多试几次!

-
拉取远程库⭐
如果我们在GitHub上直接修改了文件,比如在hello.txt文件最后一行加了几个6。
这样这时远程库和本地库不是同步的了,怎么更新本地库代码呢(即如果有他人push,则需要获取最新版本)
执行命令
git pull git-demo master也是分支位单位,也是很慢。最后会显示几个文件被改变,改变了几行。在工作区打开hello.txt就能看到在远程库修改的了! -
克隆远程库到本地库
新建个目录,
D:\Learning\Git-Space\git-clone,执行git clone https://github.com/Mrzhugq/git-demo.git,克隆不需要登录账号。git-clone目录下就会创建git-demo文件夹,里面会有.git文件,还有hello.txt。小结:clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名(默认别名的origin)
-
团队协作⭐
clone只需要链接,pull需要加入团队(需要创建库的人进行授权)
团队内协作,需要授权:进入库 -> 库右边的setting -> collaborators -> add people,输入用户名/邮箱都能搜到 -> 复制pending invite即邀请函通过短信发给要授权的人 -> 授权的人登录他的账号接受邀请就行了 -> 被授权的人就能看到对应的远程库了,就能push了(如果被授权的人push了,我们就需要pull拉取下来,更新我们的本地库!!)
跨团队协作:只需要把本团队远程库的对应链接发给第三方团队(或者直接搜),第三方团队在浏览器输入连接打开远程库 -> 点库右上角的fork -> 第三方的团队的账号上就有了对应的远程库 -> 就可以对这个远程库进行修改了 -> clone -> 修改 -> push -> 点击库上面的Pull Requests - new pull request - create pull request -> 可以编写commit描述,也写一段话write -> 点右下角创建即可
登录本团队的账号刷新,则在库的上面Pull Requests会有一个请求 -> 点开查看 -> 还可以给第三方团队写一段话write(两个团队可以随时聊天) -> 审核代码 -> 点下面的Merge pull request 合并申请 -> confirm merge确定合并 -> 在本团队的远程库中就能看到第三方团队修改的代码了!(有冲突手动解决)
-
SSH免密登录
C:\Users\[user]\下执行ssh-keygen -t rsa -C 2081140153@qq.com按三次回车,则会生成.ssh文件夹,打开公钥id_rsa.pub文件复制,登录GitHub -> settings -> SSH and GPG keys -> new SSH key -> 起个名字,复制到下面就行了add这样本台电脑就绑定这个GitHub账号了,下次使用库对应的SSH链接
git@github.com:Mrzhugq/git-demo.git,pull,push就不需要登录了。
6. IDEA集成Git
我的IDEA版本的2020.1
-
设置忽略文件(一次就行),例如IDEA中的.idea文件夹,.iml文件等,这些与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异。
-
创建忽略文件
git.ignore,建议放到用户的家目录下,即C:\Users\[user]\下(但我的用户名有的中文,所以我放到安装目录下了)
# 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文件中引用忽略配置文件(也在家目录中)[user]name = sutongemail = 2081140153@qq.com [core]excludesfile = D:/Program Files/MyGit/git.ignore使用正斜线
/,不要使用\反斜线
-
-
定位Git程序(一次就行)
setting -> version control -> git -> path to Git… (配置到bin下的git.exe)
-
Git初始化
菜单栏VCS -> inport into Version Control -> Create Git Repository ->默认选择的就是项目的根目录,直接点ok(在目录下就会产生.git文件夹了!) -> 这时文件都变红了,表示未被追踪
-
添加暂存区
单个文件右键Git -> Add (文件变绿了)
还可以选择当前项目右键Git -> Add 把整个项目中文件都添加暂存区(除了上面所排除的)
-
提交本地库
当前项目右键Git -> Commit Driectory -> 可以看到要提交的文件,下面可以写commit message -> 提交完文件就变成了原来正常的颜色了
-
切换版本
先修改文件,产生多个版本,则文件变成蓝色了,然后add commit,commit的时候可以点看文件看修改前后的对比。
点右下角的Git -> Log 可以看到版本信息 -> 左侧的黄色指针代表分支信息,中间的的绿色的指针代表版本信息

想要切换版本只需要在中间,选择要切换版的版本,右键 -> Reset Current Branch to Here… -> 根据需要选择对应的回退形式
(或者:VCS -> Git -> Reset HEAD… -> Reset Type: 选择回退形式,To Commit: 填写要回退到的具体版本号 -> Reset)

-
创建分支
当前项目右键Git -> Repository -> Branches… -> New Branch
或者,在IDEA右下角点击当前分支 -> New Branch
需要切换分支点IDEA右下角的当前分支 -> 选择要切换的分支 -> Checkout
-
合并分支
-
正常合并
点IDEA右下角的当前分支 -> 选择要合并的分支 -> Merge into Current
-
冲突合并
合并时冲突,则会弹出一个Conflicts窗口,显示冲突的文件,选中点右边的Merger…,进入手动合并的窗口,左侧是master分支的代码,右侧是hor-fix的代码,中间是没有冲突的代码!如果想要master的代码则需要点
》,然后直接点apply即可,自动add commit提交到本地库。
-
7.IDEA操作GitHub
-
设置GitHub账号(Gitee则需要下载插件)
Settings -> Version Control -> GitHub -> 右上角加号 -> 使用token登录
-
push到远程库(IDEA帮我们在绑定的账号下创建对应的远程库)
VCS -> Import Version Control -> Share Project on Github -> Repository name: 输入远程库的名字(一般和本地库一样),Remote:创建别名(也叫本地库名),Description: 描述信息(可以不填)
会帮我们先创建远程库,再把代码push
-
修改完代码要重新,add commit push
push:项目右键 -> Git -> Repository -> Push… -> 默认使用https链接的别名,建议使用SSH链接(免密登录) -> Push

-
拉取远程库,pull
push:项目右键 -> Git -> Repository -> Pull… :

注意:push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致, push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程 库的版本高!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!
-
克隆远程库代码到本地,clone
打开IDEA -> Get from Versio Control -> 选择Git,输入URL(Https/SSH)都行 -> clone (只clone你当时push的分支)
8. Gitee
中文网站,使用方式和GitHub一样
使用Gitee服务器再国内,可以使用https的链接。
Idea默认不带Gitee插件,需要自己安装Gitee插件。
-
绑定Gitee
Settings -> Version Control -> Gitee -> 右上角加号 -> 可以使邮箱密码登录!
-
add commit 和GitHub一样
-
push
-
帮我们创建远程库
VCS -> Import Version Control -> Share Project on Gitee -> Repository name,Remote,Description
-
push到已有的库
项目右键 -> Git -> Repository -> Push… -> 点默认的别名,Define Remote新建别名,输入Gitee库链接 -> Push
-
-
pull
项目右键 -> Git -> Repository -> Pull… -> Remote 套选择上面新建的Gitee的别名 -> Pull
-
clone
和GitHub一样
-
Gitee导入GitHub项目⭐⭐
右上角加号新建仓库 -> 右上角导入已有仓库 -> 输入再GitHub上库的Https的链接,默认会填充远程库名 -> 导入
如果GitHUb中远程库发送修改,Gitee也可以强转刷新进行同步 -> 点击远程库标题右边的圆圈,强转同步
同步到Gitee的话进行,再用这个链接进clone就比GitHub快多了!!!
相关文章:
Git和GitHub
文章目录 1.Git介绍2. 常用命令3. Git分支操作4. Git团队协作机制5. GitHub操作6. IDEA集成Git7.IDEA操作GitHub8. Gitee 1.Git介绍 Git免费的开源的分布式版本控制系统,可以快速高效从小到大的各种项目 Git易于学习,占地面积小,性能快。它…...
spring入门基本介绍及注入方式---详细介绍
一,spring的简介 Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。 提供了许多功能强大且易于使用的特性,使得开发者能够更加轻松地构建可维护且可扩展的应用程序,简单来说: Spring使用基…...
神经网络基础-神经网络补充概念-24-随机初始化
由来 在神经网络的训练过程中,权重和偏差的初始值对模型的性能和训练过程的收敛速度都有影响。随机初始化是一种常用的权重和偏差初始值设置方法,它有助于打破对称性,避免网络陷入局部最优解。 概念 当所有权重和偏差都被设置为相同的初始…...
K8S之存储卷
K8S之存储卷 一、emptyDir emptyDir:可实现Pod中的容器之间共享目录数据,但emptyDir存储卷没有持久化数据的能力,存储卷会随着Pod生命周期结束而一起删除二、hostPath hostPath:将Node节点上的目录/文件挂载到Pod容器的指定目录…...
8月17日,每日信息差
1、专家称无需太过担心EG.5变异株 2、快手职级体系调整,职级序列由双轨变单轨 3、抖音、火山引擎、中国电影资料馆发起“经典香港电影修复计划”,一年内将100部香港电影修复至4K版本。本次修复工作由火山引擎提供技术支持,与中国电影资料馆…...
VBA技术资料MF44:VBA_把数据从剪贴板粘贴到Excel
【分享成果,随喜正能量】人皆知以食愈饥,莫知以学愈愚,生命中所有的不期而遇都是你努力的惊喜.人越纯粹,就越能感受到美。大江、大河、大海、大山、大自然,这些风景从来都不会受“属于谁”的污染,人人都感受到它们的美…...
nestjs:nginx反向代理服务器后如何获取请求的ip地址
问题: 如题 参考: nodejsnginx获取真实ip-腾讯云开发者社区-腾讯云 「转」从限流谈到伪造 IP nginx remote_addr 解决办法: 1.设置nginx 对于代理部分,对http header添加Host、X-Real-IP、X-Forwarded-For(最重要&…...
STM32 F103C8T6学习笔记7:双机无线串口通信
今日尝试配通俩个C8T6单片机之间的无线串口通信,文章提供原理,源码,测试效果图,测试工程下载: 目录 传输不规范问题: 串口通信资源: 单个串口资源理解: 单片机串口资源…...
开源数据库Mysql_DBA运维实战 (DDL语句)
DDL DDL语句 数据库定义语言:数据库、表、视图、索引、存储过程. 例如:CREATE DROP ALTER DDL库 定义库{ 创建业务数据库:CREAATE DATABASE ___数据库名___ ; 数据库名要求{ a.区分大小写 b.唯一性 c.不能使用关键字如 create select d.不能单独使用…...
分布式 - 消息队列Kafka:Kafka生产者发送消息的分区策略
文章目录 01. Kafka 分区的作用02. PartitionInfo 分区源码03. Partitioner 分区器接口源码04. 自定义分区器05. 默认分区器 DefaultPartitioner06. 随机分区分配 RoundRobinPartitioner07. 黏性随机分区分配 UniformStickyPartitioner08. 为什么Kafka 2.4 版本后引入黏性分区策…...
从源代码编译构建Hive3.1.3
从源代码编译构建Hive3.1.3 编译说明编译Hive3.1.3更改Maven配置下载源码修改项目pom.xml修改hive源码修改说明修改standalone-metastore模块修改ql模块修改spark-client模块修改druid-handler模块修改llap-server模块修改llap-tez模块修改llap-common模块 编译打包异常集合异常…...
探索性测试及基本用例
1 测试决策5要素 测试目标:所有的重要任务都完成了,而剩下没做的事情是比较次要的,我们做到这一点就可以尽早尽可能地降低发布风险。 测试方法:测试是一个不断抉择的过程,测试人员必须理解运行测试用例时和分析现有信…...
MYSQL 作业三
创建一个student表格: create table student( id int(10) not null unique primary key, name varchar(20) not null, sex varchar(4), birth year, department varchar(20), address varchar(50) ); 创建一个score表格 create table score( id int(10) n…...
【深度学习 | 感知器 MLP(BP神经网络)】掌握感知的艺术: 感知器和MLP-BP如何革新神经网络
🤵♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...
Kali Linux中常用的渗透测试工具有哪些?
今天我们将继续探讨Kali Linux的应用,这次的重点是介绍Kali Linux中常用的渗透测试工具。Kali Linux作为一款专业的渗透测试发行版,拥有丰富的工具集,能够帮助安全专家和渗透测试人员检测和评估系统的安全性。 1. 常用的渗透测试工具 以下是…...
SpringBoot案例 调用第三方接口传输数据
一、前言 最近再写调用三方接口传输数据的项目,这篇博客记录项目完成的过程,方便后续再碰到类似的项目可以快速上手 项目结构: 二、编码 这里主要介绍HttpClient发送POST请求工具类和定时器的使用,mvc三层架构编码不做探究 pom.x…...
第三章,矩阵,08-矩阵的秩及相关性质
第三章,矩阵,08-矩阵的秩及相关性质 秩的定义1最高阶非零子式定理秩的定义2秩的性质性质1性质2性质3性质4性质5性质6性质7性质8性质9性质10性质11性质12性质12的推论 玩转线性代数(20)矩阵的秩的笔记,相关证明以及例子见原文 秩的定义1 设矩…...
VS2019 + Qt : setToolTip的提示内容出现乱码
VS2019 Qt : setToolTip的提示内容出现乱码 在使用setToolTip()时, setToolTip(QString("asd你好!");标签提示只有英文是对的,中文是乱码! 应该是编码出了问题。默认情况下,Qt使用的是UTF-8编码…...
PO、BO、VO、DTO、DAO、POJO
文章目录 PO(Persistant Object)持久对象DO(Data Object)数据对象AO(Application Object)应用对象BO(Business Object)业务对象VO(Value Object)表现对象DTO&…...
MySQL— 基础语法大全及操作演示!!!(下)
MySQL—— 基础语法大全及操作演示(下)—— 持续更新 三、函数3.1 字符串函数3.2 数值函数3.3 日期函数3.4 流程函数 四、约束4.1 概述4.2 约束演示4.3 外键约束4.3.1 介绍4.3.2 语法4.3.3 删除/更新行为 五、多表查询5.1 多表关系5.1.1 一对多5.1.2 多对…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
