Git大全
目录
一、Git概述
1.1Git简介
1.2Git工作流程图
1.3查看Git的版本
1.4 Git 使用前配置
1.5为常用指令配置别名(可选)
1.5.1打开用户目录,创建 .bashrc 文件
1.5.2在 .bashrc 文件中输入如下内容:
1.5.3打开gitBash,执行 source ~/.bashrc
1.6解决GitBash乱码问题
1.6.1打开GitBash执行下面命令
1.6.2${git_home}/etc/bash.bashrc 文件最后加入下面两行
1.7获取本地仓库
1.8基础操作指令
1.9查看修改的状态(status)
1.10添加工作区到暂存区(add)
1.11提交暂存区到本地仓库(commit)
1.12查看提交日志(log)
1.13版本回退
1.14添加文件至忽略列表
二、分支
2.1分支细分
2.2分支命令
2.3合并分支merge
2.4解决冲突
2.5开发中分支使用原则与流程
2.6暂时保存更改
三、Git远程仓库
3.1常用的托管服务[远程仓库]
3.2注册码云
3.3创建远程仓库
3.4配置SSH公钥
3.5操作远程仓库
3.5.1、添加远程仓库
3.5.2、查看远程仓库
3.5.3、推送到远程仓库
3.5.4、 本地分支与远程分支的关联关系
3.5.5、从远程仓库克隆
3.5.6、从远程仓库中抓取和拉取
3.5.7、解决合并冲突
一、Git概述
1.1Git简介
Git是一个分布式版本管理系统,他通过共享版本库来共享版本信息,所以相当于每个开发人员的本地都有一个共享版本库的拷贝,所有人员的本地版本库和共享版本库都是同步的,所以不用担心共享版本库宕机的问题,只要拿一个开发人员的本地版本库传到共享版本库就好了,开发人员之间可以直接交换版本信息,但是这种方式不常用,我们一般还是通过共享版本库实现共享,这样所有的人员都可以共享到版本信息,无需联网了,因为版本库就在你自己的电脑上,但是要实现版本共享的时候还是需要联网的,自己开发的时候不需要联网。
1.2Git工作流程图
git仓库 | 暂存区 | 工作目录 |
---|---|---|
用于存放提交记录 | 临时存放被修改文件 | 被Git管理的项目目录 |
命令解释如下:
-
clone(克隆): 从远程仓库中克隆代码到本地仓库
-
checkout (检出):从本地仓库中检出一个仓库分支然后进行修订
-
add(添加): 在提交前先将代码提交到暂存区
-
commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本
-
fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
-
pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
-
push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库
1.3查看Git的版本
git --verson
1.4 Git 使用前配置
1. 配置提交人姓名:git config --global user.name “提交人姓名” # (对当前系统用户有效)
2. 配置提交人姓名:git config --global user.email “提交人邮箱” # (对当前系统用户有效)
作用:识别开发人员,与登github,gitee的账户无关
3. 查看git配置信息:git config --list
4.查看配置信息git config --global user.namegit config --global user.email
注意
1.如果要对配置信息进行修改,重复上述命令即可。
2. 配置只需要执行一次。邮箱可以是假的!
1.5为常用指令配置别名(可选)
有些常用的指令参数非常多,每次都要输入好多参数,我们可以使用别名。
1.5.1打开用户目录,创建 .bashrc 文件
部分windows系统不允许用户创建点号开头的文件,可以打开gitBash,执行 touch ~/.bashrc
1.5.2在 .bashrc 文件中输入如下内容:
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
1.5.3打开gitBash,执行 source ~/.bashrc
1.6解决GitBash乱码问题
1.6.1打开GitBash执行下面命令
git config --global core.quotepath false
1.6.2${git_home}/etc/bash.bashrc 文件最后加入下面两行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
1.7获取本地仓库
要使用Git对我们的代码进行版本控制,首先需要获得本地仓库
1)在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库
2)进入这个目录中,点击右键打开Git bash窗口
3)执行命令git init
4)如果创建成功后可在文件夹下看到隐藏的.git目录。
1.8基础操作指令
Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git
的命令而发生变化。
1. git init # 初始化git仓库2. git status # 查看文件状态3. git add (工作区 --> 暂存区)
git add 文件列表 #指定添加文件
git add . #添加所有文件、文件夹和子文件夹,包括.gitignore和以点开头的任何其他内容;4. git commit (暂存区 --> 本地仓库)
git commit -m “提交信息” # 向仓库中提交代码(全部文件)
git commit -m "提交信息" 文件名字 # 提交某个文件5. git log # 显示所有提交记录
git log --pretty=oneline # 一行显示版本信息
补充:
git log lfa380b5O2a0Ob82bfc8d84c5ab5el5b8fbf7dac # 会显示所有关于这个id以及之前的修改记录
git log lfa380b5O2a0Ob82bfc8d84c5ab5el5b8fbf7dac -1 # 加上-1参数表示我们只想看到一行记录
而如果想要查看这条提交记录具体修改了什么内容,可以在命令中加入p参数,命令如下:
git log Ifa380b502a00b82bfc8d84c5ab5el5b8fbf7dac -1 -p6. git reset --hard 版本id # 回退版本7. git reflog # 查看所有版本信息8. git diff # 表示未使用add命令时的修改这样可以查看到所有文件的更改内容,
如果你只想查看MainActivity.java这个文件的更改内容,
可以使用如下命令:
git diff app/src/main/java/com/example/providertest/MainActivity.javagit log 表示最近的改变,会显示全部的id号!git reflog可以看到所有的改变,但是也是精简版的!
如果文件未被跟踪,即没有使用git add这个命令时,文
件为红色,如果使用这个命令,则文件变为绿色.
1.9查看修改的状态(status)
-
作用:查看的修改的状态(暂存区、工作区)
-
命令形式:git status
1.新创建的文件是未跟踪状态
2.即将被提交的意思
3.提交完后显示缓冲区没有东西可以提交了
新建文件是显示new file 修改文件就是实现modified:
1.10添加工作区到暂存区(add)
-
作用:添加工作区一个或多个文件的修改到暂存区
-
命令形式:git add 单个文件名|通配符
- 将所有修改加入暂存区:git add .
1.11提交暂存区到本地仓库(commit)
-
作用:提交暂存区汇总所有内容到本地仓库的当前分支
-
命令形式:git commit -m ‘注释内容’
-
git commit -m "提交信息" 文件名字 # 提交某个文件
提交时候添加的备注会被放到日志中
提交完后显示缓冲区没有东西可以提交了
1.12查看提交日志(log)
在1.5中配置的别名 git-log 就包含了这些参数,所以后续可以直接使用指令 git-log
-
作用:查看提交记录
-
命令形式:git log [option]
-
options
-
all 显示所有分支
-
pretty=oneline 将提交信息显示为一行
-
abbrev-commit 使得输出的commitId更简短
-
graph 以图的形式显示
-
-
查看log我们一般都是会加上上面全部的参数的,这样显示更美观有序,我们在上面给这个指令设置了别名
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
我们只要使用git -log命令就好了 ,简单命令为git log(这里也可以到1.8了解一下git reflog命令)
1.13版本回退
撤回到之前的某个操作,他回去删除我们撤回到位置之后的版本
-
作用:版本切换
-
命令形式:git reset --hard commitID
- commitID 可以使用 git-log 或 git log 指令查看
-
如何查看已经删除的记录?
-
git reflog
-
这个指令可以看到已经删除的提交记录
-
我们可以在reflog里面知道删除文件的id,我们可以直接使用命令git reset --hard commitID 还原或者回退!
所以git reset --hard commitID既可以做版本回退,也可以做版本还原!–hard放在id前面或者后面都可以
1 git checkout 文件
不过这种撤销方式只适用于那些还没有执行过add命令
的文件,如果某个文件已经被添加过了,这种方式就无
法撤销其更改的内容.
这种情况我们应该先对其取消添加,然后才可以撤回提交。
取消添加使用的是reset命令,用法如下所示:
git reset HEAD app/src/main/java/com/example/providertest/MainActivity.java
然后再运行一遍git status命令,你就会发现MainActivity.java这个文件重新变回了未添加状态,此时就可以使用checkout命令来将修改的内容进行撤销了。2 用暂存区中的文件覆盖工作目录中的文件: git checkout 文件
应用场景:如果开发过程中不满意当前的内容,想要后悔药,那么可以
使用这个命令从暂存区取相应的文件来恢复,使用后文件的状态依然
为绿色.3 将文件从暂存区中删除: git rm --cached 文件
应用场景:开发过程中,不是每个文件都是有必要交给git管
理的,使用这个命令可以从暂存区删除没用的文件,不交
给git管理,此时文件在工作目录依然存在,只是没在
暂存区而已.4 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工
作目录:git reset --hard commitID
应用场景:开发过程中,如果想要利用某次记录覆盖暂存区和工
作目录,则可以使用 上面那个命令.
1.14添加文件至忽略列表
一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动
生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录
中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:
这里是vim打开的效果,可以在文件夹用记事本编辑!
这样后缀为.a的文件就不会被加到缓冲区中,这样git就不会去处理这些文件了
一般.gitignore文件公司会给
二、分支
为了便于理解,大家暂时可以认为分支就是当前工作目
录中代码的一份副本。
使用分支,可以让我们从开发主线上分离
出来,以免影响开发主线。
2.1分支细分
主分支(master):第一次向 git 仓库中提交更新记录时自动
产生的一个分支。
开发分支(develop):作为开发的分支,基于 master 分支创建。
功能分支(feature):作为开发具体功能的分支,基于开发分支创建
功能分支 -> 开发分支 -> 主分支
解析:实际开发中,主分支一般来发布源码之类,要保持稳定,所以
就出现了开发分支,当开发分支弄好后在合并到主分支.
功能分支是作为开发具体功能的分支,为了保持开发分支
的稳定,当功能分支弄好后在合并到开发分支.所以路线就是
功能分支 -> 开发分支 -> 主分支
工作区只能在一个分支工作,每个分支存放的文件或者资源是不一样的,就相当于不同的文件夹
只是我们只能看到当前分支的内容,head指向谁,谁就是当前分支
2.2分支命令
git branch # 查看分支git branch 分支名称 # 创建分支 创建的新分支会建立在当前分支的版本之上,所以新建的分支会有当前分支的内容git checkout 分支名称 # 切换分支
注意:在切换分支的时候一定要保证当前的内容处于提
交状态,即有使用git commit这个命令,否则切换到其
他分支的时候会把切换前的分支内容带过去,这不是我们想要的git checkout -b 分支名 # 我们还可以直接切换到一个不存在的分支(创建并切换)git merge 来源分支 # 合并分支git branch -d 分支名称` # 删除分支(分支被合并后才允许删除)(-D 强制删除)
注意:如果某分支没有合并,则该分支不可以直接被删除,解决办法就是把小d改为大D即可。
2.3合并分支merge
注意:分支上的内容必须先提交,才能切换分支
一个分支上的提交可以合并到另一个分支
- 命令:git merge 分支名称
- 在每个人都开发完后就将所有的代码汇总到一起,此时就要执行分支的合并操作
master使我们的主线,我们一般将分支合并到主线上面去
步骤:切换到master分支,然后执行合并命令,执行完后,分支上的资源、文件就会被合并到主线上面去
第三行是master分支创建了ignore文件,然后第二行执行dev01分支合并到master分支的操作,最后head指向了主分支
例如将test01分支合并到master分支上,master分支上就会加上test01分支上的内容
分支岔开表示有多个分支在修改同一个文件
2.4解决冲突
当我们合并分支后,两个或者多个分支对同一个文件的同一个地方进行修改的时候(不是同一个地方是不会出现冲突的 ),此时git就不知道要取哪个分支修改的值,是取a分支修改的值,还是取b分支修改的值呢,此时就产生了冲突!因此 需要人工操作!
冲突的报错
而此时文件的样子
第一个count值表示的是当前分支修改的值
第二个count值是在dev分支修改的值
当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:
其实我们就是直接手动去删除文件中的一个分支,留下一个分支,这样就不会冲突了
-
处理文件中冲突的地方
-
将解决完冲突的文件加入暂存区(add)
-
提交到仓库(commit)
冲突部分的内容处理如下所示:
2.5开发中分支使用原则与流程
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离
开来进行重大的Bug修改、开发新的功能,以免影响开发主线。
在开发中,一般有如下分支使用原则与流程:
- master (生产) 分支
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
- develop(开发)分支
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线
要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
例如我们要开发新功能,我们要可以在develop分支上在建一个分支,新功能一般叫做feature分支,开发完以后在合并到 develop分支上面去,而不是直接提交到master分支,最后项目做完了develop在合并到master分支上
develop和master分支是不可删除的
- feature/xxxx分支(用完可删)
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完
成后合并到develop分支,用完后可删除。
- hotfifix/xxxx分支,
从master派生的分支,一般作为线上bug修复使用,修复测试完成后需要合并到master、test、develop分支。
- 还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等等。
2.6暂时保存更改
在git中,可以暂时提取分支上所有的改动并存储,让开发人
员得到一个干净的工作副本,临时转向其他工作。
使用场景:分支临时切换
存储临时改动:git stash
恢复改动:git stash pop
应用场景(分支临时切换);开发过程中,如果老板说
以前的内容存在bug,那么你得切换分支去修改,
但你当前的分支尚未完成,不想提交上去.即不要
git commit这个命令的需求,但是又不想把切换前
的分支内容带过去,此时可以利用git stash(存储
临时改动)这个命令,这个命令的作用就是把你当
前分支的内容剪切到剪贴板上,然后就可以切换
分支了,虽然没有git commit这个命令,但状态已
处于工作清空状态(即暂存区跟工作目录没有内容了)。
当处理好bug之后切换到原来的分支,使用
git stash pop(恢复改动)这个命令从剪贴板复制过
来,此时又恢复之前的状态了。
三、Git远程仓库
3.1常用的托管服务[远程仓库]
前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库 呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名gitHub 码云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于 GitHub,码云速度会更快 GitLab (地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用Git作 为代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业、学校等内部网络搭建git私服。
企业里面我们一般使用GitLab,毕竟代码放在自己的机房里面才安全,gitLab要自己部署
3.2注册码云
要想使用码云的相关服务,需要注册账号(地址: https://gitee.com/signup )
3.3创建远程仓库
仓库创建完成后可以看到仓库地址,如下图所示:
3.4配置SSH公钥
-
生成SSH公钥
- ssh-keygen -t rsa
- 不断回车
- 如果公钥已经存在,则自动覆盖
-
Gitee设置账户共公钥
- 获取公钥
- cat ~/.ssh/id_rsa.pub
- 获取公钥
- 验证是否配置成功
- ssh -T git@gitee.com
3.5操作远程仓库
3.5.1、添加远程仓库
此操作是先初始化本地库,然后与已创建的远程库进行对接。
我们要将本地仓库和远程仓库连接起来,一般一个本地仓库对应一个远程仓库远侧,远程仓库默认名为origin
-
命令: git remote add <远端名称> <仓库路径SSH>
-
远端名称,默认是origin,取决于远端服务器设置
-
仓库路径,从远端服务器获取此SSH,
-
- 例如: git remote add origin git@gitee.com:czbk_zhang_meng/git_test.git
3.5.2、查看远程仓库
- 命令:git remote
3.5.3、推送到远程仓库
-
命令:git push [-f] [–set-upstream] [远端名称 [本地分支名][:远端分支名] ]
-
如果远程分支名和本地分支名称相同,则可以只写本地分支
本来是:git push origin master :master 表示将本地仓库的master分支提交到远程仓库的master分支
- git push origin master 这里表示将本地仓库当前master分支的内容推到远程仓库上面去
-
-f 表示强制覆盖
-
–set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。
- git push --set-upstream origin master
-
如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
-
- git push 将master分支推送到已关联的远端分支。
-
[-f] 表示强制覆盖远程仓库的内容
查询远程仓库
3.5.4、 本地分支与远程分支的关联关系
- 查看关联关系我们可以使用 git branch -vv 命令
3.5.5、从远程仓库克隆
如果已经有一个远端仓库,我们可以直接clone到本地。
- 命令: git clone <仓库路径> [本地目录]
- 本地目录可以省略,会自动生成一个目录,就是SSH后面那部分
左边是我们上传的仓库,右边是克隆下来的仓库
不同的主机都把修改完了版本资源放在远程仓库上,然后其他人都是克隆,这样就可以实现不同主机之间的数据同步了,数据都是一样的
克隆一般只会执行一次,就是在你进去公司的时候,别人提交了以后,我们不需要去克隆整个仓库,仓库是很大的,克隆也需要花很多时间,所以要去远程仓库中抓取我们要的版本信息,就是那些别人新增加的提交
3.5.6、从远程仓库中抓取和拉取
远程分支和本地的分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。
-
抓取 命令:git fetch [remote name] [branch name]
-
抓取指令就是将仓库里的更新都抓取到本地,不会进行合并,不合并本地仓库就是没有更新,此时还没有拿到远程仓库的内容,合并后才会拿到更新的内容
-
如果不指定远端名称和分支名,则抓取所有分支。
-
-
拉取 命令:git pull [remote name] [branch name]
-
拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
-
如果不指定远端名称和分支名,则抓取所有并更新当前分支。
只去执行抓取命令 git fetch,本地仓库是没有远程仓库来的内容的
-
此时的test1中没有test06
将origin/master合并到本地仓库的master
此时test1中就有test06文件了
所以我们一般执行拉取命令
直接执行git pull
此时test1中有直接拿到文件test07
为什么将远程仓库更新的资源抓取到本地要合并呢?
总结:push的时候要使远程仓库的更新是最新的,就是最后一个修改的版本要使远程仓库的,pull要使本地仓库的更新是最新的,就是最后一个修改的版本要使本地仓库的
因为我们此时我们获取到的是远程仓库的版本更新,但是我们本地的版本不是最新的,也就是说此时我们本地和远程仓库不是同步的,所以我们要将远端拿到的修改合并到本地仓库的master上,使得本地的版本修改变为最新的
发现此时本地的修改和远程仓库的修改同步了
- 在test01这个本地仓库进行一次提交并推送到远程仓库
- 在另一个仓库将远程提交的代码拉取到本地仓库
3.5.7、解决合并冲突
我们要更新远程仓库的资源时,先要获取此时远程仓库的资源后,在合并到自己的master分支中,然后再上传到远程仓库上
在一段时间,A、B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。
A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修订代码,提交到本地仓库后,也需要
推送到远程仓库,此时B用户晚于A用户,故需要先拉取远程仓库的提交,经过合并后才能推送到远端分支,如下图所示。
在B用户拉取代码时,因为A、B用户同一段时间修改了同一个文件的相同位置代码,故会发生合并冲突。
就是b在更新一个资源之前,有一个a在b之前率先改掉了这个资源,此时就会出现分支冲突的问题,git不知道是要取a修改的值,还是b修改的值,此时就要我们手动去对应文件里去修改,到底要保留哪一个。
远程分支也是分支,所以合并时冲突的解决方式也和解决本地分支冲突相同相同。
相关文章:
Git大全
目录 一、Git概述 1.1Git简介 1.2Git工作流程图 1.3查看Git的版本 1.4 Git 使用前配置 1.5为常用指令配置别名(可选) 1.5.1打开用户目录,创建 .bashrc 文件 1.5.2在 .bashrc 文件中输入如下内容: 1.5.3打开gitBash,执行…...
Touch命令使用指南:创建、更新和修改文件时间戳
文章目录 教程:touch命令的使用指南一、介绍1.1 什么是touch命令?1.2 touch命令的作用1.3 touch命令的语法 二、基本用法2.1 创建新文件2.2 更新文件时间戳2.3 创建多个文件2.4 修改文件访问时间2.5 修改文件修改时间2.6 修改文件创建时间 三、高级用法3…...
Windows开启 10 Telnet
在Windows 10中,Telnet客户端默认是不安装的。要在Windows 10上使用Telnet客户端,您需要手动启用它。以下是启用Telnet客户端的步骤: 打开控制面板。您可以通过在开始菜单中搜索"控制面板"来找到它。在控制面板中,选择…...
高教杯数学建模A题程序设计要点与思路
2023 年是我最后一次参加 高教杯大学生数学建模竞赛 以后不会再参加了(大四参加意义不太,研究生有研究生的数学建模大赛) 很遗憾 由于各种原因 我们没有能够完成赛题2022 年 美赛 2022年 Mathor Cup 2022 年国赛 2022 亚太杯 2023年 美赛 202…...
Spring Boot的新篇章:探索2.0版的创新功能
文章目录 引言1. Spring Boot 2.0的响应式编程2. 自动配置的改进3. Spring Boot 2.0的嵌入式Web服务器4. Spring Boot 2.0的Actuator端点5. Spring Boot 2.0的Spring Data改进6. Spring Boot 2.0的安全性增强7. Spring Boot 2.0的监控和追踪8. Spring Boot 2.0的测试改进结论 &…...
5、SpringBoot_热部署
六、热部署 1.热部署概述 概述:程序更改后,不需要重新启动服务器也能够实现动态更新 springboot 项目如何实现热部署? tomcat 已经内置到项目容器中了希望tomcat监听外部程序变化通过新建一个程序来监控你代码的变化 2.依赖导入 依赖 <…...
【kohya】训练自己的LoRA模型
文章目录 序言准备环境准备图片处理图片下载kohya_ss代码修改pyvenv.cfg启动界面访问地址生成字幕准备训练的文件夹配置训练参数开始训练遇到的问题: 序言 在把玩stable diffusion的webUI和comfyUI后,思考着自己也微调一个个性化风格的checkpoint、LyCO…...
[尚硅谷React笔记]——第1章 React简介
目录: 第1章 React简介 React的基本使用:虚拟DOM的两种创建方式: 使用jsx创建虚拟DOM使用js创建虚拟DOM(一般不用)虚拟DOM与真实DOM:React JSX:JSX练习:模块与组件、模块化与组件化的理解 模块组件模块化组件化 第1章 React简介 中文官网: …...
Debezium系列之:快照参数详解
Debezium系列之:快照参数详解 一、snapshot.select.statement.overrides二、min.row.count.to.stream.results三、snapshot.delay.ms四、snapshot.fetch.size五、snapshot.lock.timeout.ms六、incremental.snapshot.allow.schema.changes七、incremental.snapshot.chunk.size八…...
redis单机版搭建
title: “Redis单机版搭建” createTime: 2022-01-04T20:43:1108:00 updateTime: 2022-01-04T20:43:1108:00 draft: false author: “name” tags: [“redis”] categories: [“install”] description: “测试的” redis单机版搭建 安装环境 redis版本redis-5.0.7虚拟机系统…...
物联网边缘网关
物联网边缘网关 边缘网关的定义边缘网关的分类边缘计算网关平台相关产品有哪些 百度边缘计算平台(BIE)华为边缘计算平台(IEF)产品应用拓扑图产品价格区间...
docker部署springboot程序时遇到的network问题
对应问题,因为刚开始接触docker,所以问题可能比较简单,但是做个记录 1、启动一个springboot项目获取本地ip的时候获取到的是172.17.0.x这个ip;在使用一些注册中心,mq的时候又要表明自己的本机器ip的时候会比较头疼&…...
RASP hook插桩原理解析
javaagent技术,实现提前加载类字节码实现hook,插桩技术 javassist技术ASM字节码技术 像加载jar,有两种方式 premain启动前加载:每次变动jar包内容,都需要进行重启服务器利用java的动态attch加载原理,采用pr…...
Pygame中Sprite的使用方法6-5
3 碰撞检测 蓝色方块会随着鼠标移动,当碰到绿色方块时,则当前分数加1,当碰到红色方块时,当前分数减1。因为要随时进行碰撞检测,因此需要在while True循环中实现以下功能。 3.1 蓝色方块随鼠标移动 将蓝色方块的位置…...
浅谈为什么多态只能是指针或引用
其实在很早之前,我一直没有注意到这个问题,直到今天碰见了一道题,顺便前面的博客中,继承写到,子类中不包含父类,子类只是继承了父类的成员变量和函数,由这一点,引发了我对切片以及赋…...
js看代码说输出
目录 原型 Function与Object new fn() 原型链 constructor function.length 默认参数:第一个具有默认值之前的参数个数 剩余参数:不算进length 闭包 循环中 函数工厂:形参传递 IIFE:匿名闭包 let:闭包 forEach()&am…...
Java笔记:使用javassist修改class文件内方法
1.前言 在工作突然有一个需求。线上运维的一个tomcat的web项目,运行的程序不正常。需要修改代码。可是这个项目代码非常的老,并且公司存储的源代码跟线上的不一致。 我了个擦,没有源代码但是还要结局客户的问题。只能到线上将对应程序的clas…...
华为云云耀云服务器L实例评测 |云服务器性能评测
通过上一篇文章华为云云耀云服务器 L 实例评测 |云服务器选购,我已经购买了一台 Centos 系统的云耀云服务器 L 实例。 在获得云耀云服务器 L 实例后,首要任务是熟悉云耀云服务器 L 实例的性能,对云耀云服务器 L 实例的性能进行测…...
iphone的safari浏览器实现全屏的pwa模式,并修改顶部状态栏背景颜色
要想修改顶部背景颜色,需要用到这个属性:content就是你要设置的颜色 <!-- 状态栏的背景色 --><meta name"theme-color" content"#f8f8f8" /> 然后再加上下面的设置: <!-- 网站开启对 web app 程序的支持…...
springboot对接rabbitmq并且实现动态创建队列和消费
背景 1、对接多个节点上的MQ(如master-MQ,slave-MQ),若读者需要自己模拟出两个MQ,可以部署多个VM然后参考 docker 安装rabbitmq_Steven-Russell的博客-CSDN博客 2、队列名称不是固定的,需要接受外部参数&…...
Spring的后处理器-BeanFactoryPostprocessor
目录 Spring后处理器 Bean工厂后处理器-BeanFactoryPostProcessor 修改beanDefinition对象 添加beanDefiniton对象 方法一 方法二 自定义Component Spring后处理器 Spring后处理器是Spring对外开放的重要拓展点(让我们可以用添加自己的逻辑)&…...
Flutter 必备知识点
Flutter 升级 确保在项目根目录下(含有 pubspec.yaml 的文件夹) 在命令行中输入命令: flutter channel输出: Flutter channels: * mastermainbetastable这个可以在 pubspec.yaml 中查看: 切换分支也很简单…...
什么是FMEA(失效模式和影响分析)?
失效模式和影响分析(FMEA)是一个在开发阶段,用于确定产品或流程可能的风险和失败点的有条理的过程。FMEA团队会研究失效模式,也就是产品或流程中可能出错的地方,以及这些失效可能带来的影响(如风险、损害、…...
Redis面试题(三)
文章目录 前言一、怎么理解 Redis 事务?二、Redis 事务相关的命令有哪几个?三、Redis key 的过期时间和永久有效分别怎么设置?四、Redis 如何做内存优化?五、Redis 回收进程如何工作的?六、 加锁机制总结 前言 怎么理…...
Python错误处理指南:优雅应对异常情况
目录 一. 异常是什么?二. 使用 try 和 except三. 捕获多个异常四. 使用 else五. 使用 finally六. 自定义异常七.Python中常见异常处理类型八.Python中常见异常处理实例九.异常处理最佳实践十.结论 当编写Python代码时,错误处理是一个重要的方面ÿ…...
MySQL学习笔记12
MySQL 查询语句: 1、查询五子句:(重点) mysql> select */字段列表 from 数据表名称 where 子句 group by 子句 having 子句 order by 子句 limit 子句; 1)where 子句;条件筛选。 2)group…...
【owt】构建m79的owt-client-native:使用vs2017
家里电脑换成了台式机,拷贝代码发现了三年前的owt客户端mfc工程。 不用下载第三方库,试着构建下: owt-client-native 我这里有3年前的代码,思索了下还是用vs2017构建吧: 重新构建一下 选用x86 的 vs2017 vs的命令行控制台 cls可以清理屏幕 之前构建过vs2022的webrtc原版 …...
Cpp/Qt-day020918Qt
目录 完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两…...
Spring面试题10:Spring的XMLBeanFactory怎么使用
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring的XMLBeanFactory怎么使用 XmlBeanFactory是Spring框架中的一个实现类,它是BeanFactory接口的一个具体实现。XmlBeanFactory的主要作用是通…...
自定义数据类型
前言:小伙伴们又见面啦,今天这篇文章,我们来谈谈几种自定义数据类型。 目录 一.都有哪些自定义数据类型 二.结构体 结构体内存对齐 1.如何对齐 2.为什么要对齐 3.节省空间和提升效率的方法 (1)让占用空间小的成员…...
中山网站建设价位/搜狗搜图
今天进行了我的微博研究:当其他人在发我时,将他的微博保存到“我”界面。单击我后显示所有我的微博。要在微博首页单击顶部菜单栏“信封图标”下“我的”,才能进入我界面。转载于:https://www.cnblogs.com/gaoemm/p/10242171.html...
基层建设收录网站/seo运营推广
信息安全相关证书 1、CISP-PTE(国家注册渗透测试工程师) PTE属于渗透测试方向的专项考试,是国内首个渗透测试领域权威认证,属于特定领域,深度发展,从事的工作属于安全服务方面 。政府背景给认证做背书,想在政府、国企及…...
网站优化计划/中国百强城市榜单
当前越来越多的消费者对自己所需要使用的产品尤其是音效产品都有了更高的需求。追求极致的音效体验, 这也给外置声卡行业带来极大的发展空间。现如今声卡主要面向热衷于钻研电子科技,或直播行业,游戏领域的年轻消费群体,在产品的沟…...
南京做网站企业/广东seo
在浏览地图时,移动鼠标经过某个对象或者POI的时候,能够提示该对象的名称对用户来说是很实用的,本文讲述在Arcgis for Js中,用两种不同的方式来实现该效果。 为了有个直观的概念,先给大家看看实现后的效果: …...
html table网站/seo网络优化软件
注解解释Controller组合注解(组合了Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了RequestMapping的方法上。Service组合注解(组合了Component注解),应用在service层(业务逻辑层…...
网站系统商城/seo发贴软件
在eclipse中 如果直接在resources文件夹下建立子文件夹 那么新建立的子文件夹会跑到根目录 怎么呢? 很简单 1在resource子目录中新建一个子目录 2在弹出的对话框中修改路径为resuorce下 两步操作过后 就发现 新建立的文件夹 跑到resources目录下了 注意: 刷新项目是没有用的...