git 分支管理

news2024/12/25 0:07:59

目录

一. 理解分支

1. master分支

 二. 分支的(创建,切换、合并、删除)

1.查看分支

 2.创建分支

3. 切换分支

 4. 合并分支

5. 删除分支

三. 合并冲突

四. 合并模式

五. bug 分支

六. 强制删除分支


一. 理解分支

1. master分支

在我们的版本库中式有一个master分支的,但是我们不知道我们的master分支是什么 

我们可以看一下master分支里面存的是什么,我们想要看master,我们知道我们的.git目录中的HEAD指针就是指向master,所以我们可以查看HEAD指针指向的内容

[lxy@hecs-165234 gitcode]$ cat .git/HEAD
ref: refs/heads/master

[lxy@hecs-165234 gitcode]$ cat .git/refs/heads/master
fb1fa8ed3e0ed84a2a5d5ecaa7ec7afbfb4b7cd5

实际上我们的master里面存的是最近一次的提交ID

[lxy@hecs-165234 gitcode]$ git log --pretty=oneline
fb1fa8ed3e0ed84a2a5d5ecaa7ec7afbfb4b7cd5 delete file1
1e0bdd4483c99c4498cfcd075a5443bd22feacd4 add file
16d08056d1837be3cf3354332da20e8db4164d66 add file
d70feee2620617fbc8d4ec39a107b9093d6d6783 the first file

 最近一次的提交和master保存的都是一样的 

我们可以简单的看一下我们的 .git文件里面的文件指向

我们可以继续看一下master分支里面的内容是什么

[lxy@hecs-165234 gitcode]$ git cat-file -p fb1fa8ed3e0ed84a2a5d5ecaa7ec7afbfb4b7cd5
tree 68047de1b39a8a3f6627648b7ebd160f03ebad78
parent 1e0bdd4483c99c4498cfcd075a5443bd22feacd4
author lxy <2146047600@qq.com> 1687599216 +0800
committer lxy <2146047600@qq.com> 1687599216 +0800

delete file1

我们看到里面有一个parent,实际上这个parent里面就是距离最近提交的上一次的提交 ,所以我们的提交是被串联在一起的,串联的那条线叫做时间线也就是主线,而我们的master也就是主分支

 既然master是主分支,所以我们也可以在主分支上金国多次提交,创建分支,创建分支后我们还可以合并分支

 二. 分支的(创建,切换、合并、删除)

1.查看分支

指令:git branch

[lxy@hecs-165234 gitcode]$ git branch
* master

 我们当前并没有创建分支,所以我们只有一个master主分支

背景知识:我们只知道HEAD指针式指向master分支的,但是实际上我们的HEAD指针可以指向任意一个分支,我们之前所做的提交都是直接就提交到了master分支上,所以我们的HEAD指针指向哪一个分支,被指向的分支就是当前正在工作的分支

 2.创建分支

指令:git branch + 分支名

我们创建一个 dev 分支,然后使用 git branch 指令查看 

[lxy@hecs-165234 gitcode]$ git branch dev
[lxy@hecs-165234 gitcode]$ git branch
  dev
* master

但是当前 HEAD 依然指向 master 分支

[lxy@hecs-165234 gitcode]$ cat .git/HEAD
ref: refs/heads/master

我们可以 tree 一下 .git 目录,我们看最下面的 refs 目录,之前我们的 refs目录里面只有一个 master 分支, 但是现在还有一个 dev 分支

[lxy@hecs-165234 gitcode]$ tree .git
.git
├── branches
├── COMMIT_EDITMSG
├── config
├── description
├── HEAD
├── hooks
│   ├── applypatch-msg.sample
│   ├── commit-msg.sample
│   ├── post-update.sample
│   ├── pre-applypatch.sample
│   ├── pre-commit.sample
│   ├── prepare-commit-msg.sample
│   ├── pre-push.sample
│   ├── pre-rebase.sample
│   └── update.sample
├── index
├── info
│   └── exclude
├── logs
│   ├── HEAD
│   └── refs
│       └── heads
│           ├── dev
│           └── master
├── objects
│   ├── 0d
│   │   └── b7b10c75f52a26bac87dd0f74c2022d4433551
│   ├── 0f
│   │   ├── 71ccb923b09f79e93f6ce96dbc84d508805b4c
│   │   └── f6aef62b249cdddebc1850135aea6e32cf3e0e
│   ├── 16
│   │   └── d08056d1837be3cf3354332da20e8db4164d66
│   ├── 1e
│   │   └── 0bdd4483c99c4498cfcd075a5443bd22feacd4
│   ├── 68
│   │   └── 047de1b39a8a3f6627648b7ebd160f03ebad78
│   ├── 75
│   │   └── 85c3a879c5cf6a6e61a78e6aeb0b3fcd164a27
│   ├── 82
│   │   └── 3a236d2f60d920980052608b7646418901b48c
│   ├── b5
│   │   └── 64faa66a046f747a58ce9ea8692b0e061d81ae
│   ├── b7
│   │   └── 87d48011046b43caa54c73c74bda9d76065d4d
│   ├── b8
│   │   └── 64093050c8039420193a53f639c49ef18948b9
│   ├── bb
│   │   └── fcc7ec62f2d2b28220e1081681ce009194d667
│   ├── d7
│   │   └── 0feee2620617fbc8d4ec39a107b9093d6d6783
│   ├── e6
│   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│   ├── f3
│   │   └── 25451d76f43cd460d070d6c316e81c85380b07
│   ├── fb
│   │   └── 1fa8ed3e0ed84a2a5d5ecaa7ec7afbfb4b7cd5
│   ├── info
│   └── pack
├── ORIG_HEAD
└── refs
    ├── heads
    │   ├── dev
    │   └── master
    └── tags
 

我们现在查看 master  分支和 dev 分支里面的内容

[lxy@hecs-165234 gitcode]$ cat .git/refs/heads/master
fb1fa8ed3e0ed84a2a5d5ecaa7ec7afbfb4b7cd5
[lxy@hecs-165234 gitcode]$ cat .git/refs/heads/dev
fb1fa8ed3e0ed84a2a5d5ecaa7ec7afbfb4b7cd5

 master 分支和 dev 分支里面存储的内容是相同的,我们大概看一下目前的索引指向情况

我们的 dev 指向最新的一次提交,这是因为我们在创建 dev 的时候我们是在最新的一次提交上创建的。

3. 切换分支

如果我们想在当前自己创建的分支上创建,那么我们当然是需要切换到 dev 分支上的,我们切换之后查看是否切换成功

指令:git checkout + 分支名

[lxy@hecs-165234 gitcode]$ git checkout dev
Switched to branch 'dev'
[lxy@hecs-165234 gitcode]$ git branch
* dev
  master
[lxy@hecs-165234 gitcode]$ cat .git/HEAD
ref: refs/heads/dev

那么我们现在的HEAD指向 dev 分支,我们现在修改里面的文件呢?

这次我们在 ReadMe 文件里面添加一行信息  "Add on dev branch" 

然后 add commit,commit 后查看ReadMe文件,在 dev 最近一次提交

[lxy@hecs-165234 gitcode]$ vim ReadMe
[lxy@hecs-165234 gitcode]$ git add ReadMe
[lxy@hecs-165234 gitcode]$ git commit -m "add on dev branch"
[dev ab3c339] add on dev branch
 1 file changed, 1 insertion(+)

[lxy@hecs-165234 gitcode]$ cat ReadMe
Hello world
Hello world
Hello world
Hello world
Hello world
Add on dev branch

[lxy@hecs-165234 gitcode]$ cat .git/refs/heads/dev
ab3c339dde2734321c5c24dca1be3863316283ad

 添加成功后,我们切换回master分支,查看文件

[lxy@hecs-165234 gitcode]$ git checkout master
Switched to branch 'master'
[lxy@hecs-165234 gitcode]$ cat ReadMe
Hello world
Hello world
Hello world
Hello world
Hello world

切换回 master  分支后我们发现文件的修改并未在 master 分支里面成功修改,我们继续查看master里面的提交记录

[lxy@hecs-165234 gitcode]$ cat .git/refs/heads/master
fb1fa8ed3e0ed84a2a5d5ecaa7ec7afbfb4b7cd5

 我们发现现在的dev 和 master指向并不相同,我们可以大概看一下 master 和 dev 的指向

 4. 合并分支

我们现在向把 dev 分支上的内容合并到 master 分支上怎么弄?

指令:git merge + 想要合并的分支

[lxy@hecs-165234 gitcode]$ git merge dev
Updating fb1fa8e..ab3c339
Fast-forward
 ReadMe | 1 +
 1 file changed, 1 insertion(+)
[lxy@hecs-165234 gitcode]$ cat ReadMe
Hello world
Hello world
Hello world
Hello world
Hello world
Add on dev branch

我们合并后查看,发现确实已经在文件里了

合并后我们查看 master 分支的最近一次的提交,已经和 dev 的最新提交相同了

[lxy@hecs-165234 gitcode]$ cat .git/refs/heads/master
ab3c339dde2734321c5c24dca1be3863316283ad 

 

5. 删除分支

我们在前面已经将 dev 分支合并了,那么也就是我们的 dev 分支也就没有存在价值了,所以我们需要删除掉 dev 分支,删除掉后我们在查看分支,我们发现分支只剩下 master 分支了

指令:git branch -d + 分支名

[lxy@hecs-165234 gitcode]$ git branch -d dev
Deleted branch dev (was ab3c339).
[lxy@hecs-165234 gitcode]$ git branch
* master

分支删除提示:如果想要删除 a 分支 ,那么就必须到其他的分支上删除 a 分支,否则就是删除不成功

我们成功删除掉 dev 分支后我们看一下索引指向

三. 合并冲突

场景:我们现在有一个 dev 分支,当我们在 dev 分支里面对 ReadMe 文件进行的修改,然后我们对 master 分支里面的 ReadMe文件也进行了修改,那么此时我们在 git merge(合并分支) 的时候会怎么样? 首先我们在合并分支的时候我们 git 并不知道我们到底要保留哪一个分支,此时 git merge 就会产生合并冲突

dev 分支做准备工作

[lxy@hecs-165234 gitcode]$ git branch -d dev
Deleted branch dev (was ab3c339).
[lxy@hecs-165234 gitcode]$ git branch
* master
[lxy@hecs-165234 gitcode]$ git branch dev
[lxy@hecs-165234 gitcode]$ git branch
  dev
* master
[lxy@hecs-165234 gitcode]$ git checkout dev
Switched to branch 'dev'
[lxy@hecs-165234 gitcode]$ git branch
* dev
  master
[lxy@hecs-165234 gitcode]$ vim ReadMe
[lxy@hecs-165234 gitcode]$ cat ReadMe
Hello world
Hello world
Hello world
Hello world
Hello world
Add on dev branch 
dev branch 试验合并冲突问题
[lxy@hecs-165234 gitcode]$ git add ReadMe
[lxy@hecs-165234 gitcode]$ git commit -m "dev 试验合并冲突问题"
[dev 3d2ea16] dev 试验合并冲突问题
 1 file changed, 2 insertions(+), 1 deletion(-)

msater 分支做准备工作

[lxy@hecs-165234 gitcode]$ git checkout master
Switched to branch 'master'
[lxy@hecs-165234 gitcode]$ git branch
  dev
* master
[lxy@hecs-165234 gitcode]$ cat ReadMe
Hello world
Hello world
Hello world
Hello world
Hello world
Add on dev branch
[lxy@hecs-165234 gitcode]$ vim ReadMe
[lxy@hecs-165234 gitcode]$ cat ReadMe
Hello world
Hello world
Hello world
Hello world
Hello world
Add on dev branch
master 试验合并冲突问题
[lxy@hecs-165234 gitcode]$ git add ReadMe
[lxy@hecs-165234 gitcode]$ git commit -m "master 试验合并冲突问题"
[master 6531ca4] master 试验合并冲突问题
 1 file changed, 1 insertion(+)

 我们现在看一下此时 分支的指向状态

尝试合并 

[lxy@hecs-165234 gitcode]$ git merge dev
Auto-merging ReadMe
CONFLICT (content): Merge conflict in ReadMe
Automatic merge failed; fix conflicts and then commit the result.

我们发现合并失败了

解决冲突 ,我们打开 ReadMe 文件,然后看到我们的冲突代码是被分开的,我们只要手动删除掉某一个冲突代码就好了,然后我们就在进行一次提交就好了

Hello world                                                                                                               
Hello world
Hello world
Hello world
 Hello world
 <<<<<<< HEAD
 Add on dev branch
master 试验合并冲突问题

=======
Add on dev branch
dev branch 试验合并冲突问题

 >>>>>>> dev

上面的红色的就代表有冲突的代码,我们只要删掉两者中的任意一种就可以(我们删除下面的)

[lxy@hecs-165234 gitcode]$ git add ReadMe
[lxy@hecs-165234 gitcode]$ git commit -m "master 试验冲突"
[master 41122ab] master 试验冲突
[lxy@hecs-165234 gitcode]$ git status
# On branch master
nothing to commit, working directory clean
[lxy@hecs-165234 gitcode]$ cat ReadMe
Hello world
Hello world
Hello world
Hello world
Hello world
Add on dev branch
master 试验合并冲突问题

我们看到我们的合并冲突解决了

此时我们的分支指向 ,我们看一下

小技巧:我们想要创建并切换一个个新的分支 的时候我们可以使用一句指令就搞定

               指令:git checkout -b + 分支名

查看上面的分支指向图

               git log --graph --abbrev-commit

查看分支指向图

[lxy@hecs-165234 gitcode]$ git log --graph --abbrev-commit
*   commit 41122ab
|\  Merge: 6531ca4 3d2ea16
| | Author: lxy <2146047600@qq.com>
| | Date:   Thu Jun 29 17:53:38 2023 +0800
| | 
| |     master 试验冲突
| |   
| * commit 3d2ea16
| | Author: lxy <2146047600@qq.com>
| | Date:   Thu Jun 29 17:16:49 2023 +0800
| | 
| |     dev 试验合并冲突问题
| |   
* | commit 6531ca4
|/  Author: lxy <2146047600@qq.com>
|   Date:   Thu Jun 29 17:23:27 2023 +0800
|   
|       master 试验合并冲突问题
|  
* commit ab3c339
| Author: lxy <2146047600@qq.com>
| Date:   Wed Jun 28 18:23:54 2023 +0800

|     add on dev branch
|  
* commit fb1fa8e
| Author: lxy <2146047600@qq.com>
| Date:   Sat Jun 24 17:33:36 2023 +0800

|     delete file1
|  
* commit 1e0bdd4
| Author: lxy <2146047600@qq.com>
| Date:   Sat Jun 24 15:03:03 2023 +0800

|     add file

merge 冲突解决总结:手动删除冲突代码,并进行提交 

四. 合并模式

git 其实是有几种模式的,其中一种就是我们在第一次合并的时候的 fast forward 模式,我们下面在复现一下第一次合并的模式

我们创建一个 dev 分支并切换过去,然后将 ReadMe 文件的内容删除到剩余1行 Hello world,然后我们进行 merge, merge之后我们使用 git log --grapg --abbrev-commit 查看 commit 分支

[lxy@hecs-165234 gitcode]$ git checkout -b dev
Switched to a new branch 'dev'
[lxy@hecs-165234 gitcode]$ vim ReadMe
[lxy@hecs-165234 gitcode]$ git add ReadMe
[lxy@hecs-165234 gitcode]$ git commit -m "删除剩余1行 hello world"
[dev 2c7ad00] 删除剩余1行 hello world
 1 file changed, 6 deletions(-)
[lxy@hecs-165234 gitcode]$ cat ReadMe
Hello world


 下面是合并分支


[lxy@hecs-165234 gitcode]$ git checkout master
Switched to branch 'master'
[lxy@hecs-165234 gitcode]$ git merge dev
Updating 41122ab..2c7ad00
Fast-forward
 ReadMe | 6 ------
 1 file changed, 6 deletions(-)

查看 commit 分支


[lxy@hecs-165234 gitcode]$ git log --graph --abbrev-commit
* commit 2c7ad00
| Author: lxy <2146047600@qq.com>
| Date:   Sat Jul 1 15:57:05 2023 +0800

|     删除剩余1行 hello world
|    
*   commit 41122ab
|\  Merge: 6531ca4 3d2ea16
| | Author: lxy <2146047600@qq.com>
| | Date:   Thu Jun 29 17:53:38 2023 +0800
| | 
| |     master 试验冲突
| |   
| * commit 3d2ea16
| | Author: lxy <2146047600@qq.com>
| | Date:   Thu Jun 29 17:16:49 2023 +0800
| | 
| |     dev 试验合并冲突问题
| |   
* | commit 6531ca4
|/  Author: lxy <2146047600@qq.com>
|   Date:   Thu Jun 29 17:23:27 2023 +0800
|   
|       master 试验合并冲突问题
|  

实际上我们发现在 fast forward 模式下 commit 分支是看不出来是 merge 的还是 自己 commit 的

实际就像这样,我们的 master 分支是指向了 dev 分支的最新提交,我们并不可以看出来,但是我们的非 no-fast forward 模式可以看出来

* commit 2c7ad00
| Author: lxy <2146047600@qq.com>
| Date:   Sat Jul 1 15:57:05 2023 +0800

|     删除剩余1行 hello world
|    
*   commit 41122ab
|\  Merge: 6531ca4 3d2ea16
| | Author: lxy <2146047600@qq.com>
| | Date:   Thu Jun 29 17:53:38 2023 +0800
| | 
| |     master 试验冲突
| |   

| * commit 3d2ea16
| | Author: lxy <2146047600@qq.com>
| | Date:   Thu Jun 29 17:16:49 2023 +0800
| | 
| |     dev 试验合并冲突问题
| |   
* | commit 6531ca4
|/  Author: lxy <2146047600@qq.com>
|   Date:   Thu Jun 29 17:23:27 2023 +0800

 我们在之前的一次试验merge冲突的时候的模式,我们看到那里显示的是 merge, 而我们不使用 fast forward 模式的指向是这样的

那么我们如何在merge 的时候不使用 fast forward 

指令:git merge --no-ff -m "...." 为什么要带 -m 呢? 因为不使用fast forward就是当前分支又提交一次,所以需要带 -m

我们再次使用 dev 分支修改 ReadMe 文件,然后进行提交,切换到 master 后 merge --no-faster 合并,查看是否可以看到提交信息显示 merge

[lxy@hecs-165234 gitcode]$ git checkout dev
Switched to branch 'dev'
[lxy@hecs-165234 gitcode]$ vim ReadMe
[lxy@hecs-165234 gitcode]$ git add ReadMe
[lxy@hecs-165234 gitcode]$ git commit -m "no-fast forward"
[dev 691b883] no-fast forward
 1 file changed, 1 insertion(+)
[lxy@hecs-165234 gitcode]$ git checkout master
Switched to branch 'master'
[lxy@hecs-165234 gitcode]$ git merge --no-ff -m "merge no fast forward"
fatal: No commit specified and merge.defaultToUpstream not set.
[lxy@hecs-165234 gitcode]$ git merge --no-ff dev -m "merge no fast forward"
Merge made by the 'recursive' strategy.
 ReadMe | 1 +
 1 file changed, 1 insertion(+)

查看commit信息


[lxy@hecs-165234 gitcode]$ git log --graph --abbrev-commit
*   commit 8ca3b16
|\  Merge: 2c7ad00 a4a3b7f
| | Author: lxy <2146047600@qq.com>
| | Date:   Sat Jul 1 16:36:38 2023 +0800
| | 
| |     merge no fast forward
| |   
| * commit a4a3b7f
|/  Author: lxy <2146047600@qq.com>
|   Date:   Sat Jul 1 16:35:07 2023 +0800
|   
|       merge no-ff

而我们这一次的提交的指示图就是这样的,我们的 dev 还是指向自己的 提交,但是我们的 master 将提交合并

 建议使用 no fast forward 模式

五. bug 分支

场景:我们在开发的过程中发现了 master 分支上的代码有 bug 但是我在这之前对 master 创建了一个分支,并且在上面开发了一些内容,所以我们现在的首要目的是修复 bug 我们要怎么做?

我们需要在 master 上在创建一个分支,然后对 master 上的代码进行修改,所以我们需要切换回 从当前开发分支上切换回 master 分支上,并且创建一个修复 bug 的分支,但是我们在 checkout master 的时候我们显示需要要对当前分支进行 commit/stash,才可以切换回去,然后我们就要在 master 上在创建一个分支,进行 bug 的修复,.......... bug 修符 ........... ,修复完成之后对我们还要继续进行开发,所以我们需要对 git stash 后的内容进行恢复 git stash pop, ....继续开发。

指令: git stash       对工作区的内容进行保存

指令:git stash list      查看保存的工作区内容

指令:git stash pop      恢复工作区的内容

[lxy@hecs-165234 gitcode]$ git branch
* dev1
  master
[lxy@hecs-165234 gitcode]$ git checkout master
error: Your local changes to the following files would be overwritten by checkout:
    ReadMe
Please, commit your changes or stash them before you can switch branches.
Aborting
[lxy@hecs-165234 gitcode]$ git branch
* dev1
  master
[lxy@hecs-165234 gitcode]$ git stash
Saved working directory and index state WIP on dev1: 2c7ad00 删除剩余1行 hello world
HEAD is now at 2c7ad00 删除剩余1行 hello world

在对当前文件进行了 git stash 后我们的 .git/refs 里面就会有一个新的文件


├── ORIG_HEAD
└── refs
    ├── heads
    │   ├── dev1
    │   └── master
    ├── stash
    └── tags
stash 文件就是用来存储 git stash 的内容的


修复 bug ........


继续开发

[lxy@hecs-165234 gitcode]$ git stash pop

继续开发....

当前我们的分支的状态时这样的

 我们现在对 dev1 分支已经开发完毕了,我们现在如果直接在 master 分支上进行 merge 的话就是这个样子

 

这样的话,我们时恒容易出错的,因为我们的 master分支的内容也修改了,所以我们在进行 merge 的时候回发生合并冲突,我们需要手动的修改,所以时特别容易出错的,我们建议先在 dev 分支上进行合并 这样出错了修改也不会影响到 master 分支上的内容那么我们就是这样的

 

等我我们合并后将 dev 分支上的冲突问题解决后,我们在到 mater 分支上进行合并,这样就不会冲突了

 

六. 强制删除分支

如果我们对一个分支不想要了,但是我们并没有对其 merge 操作,我们应该怎么样删除呢?

指令:git branch -D + 分支名

[lxy@hecs-165234 gitcode]$ git checkout -b dev3
Switched to a new branch 'dev3'
[lxy@hecs-165234 gitcode]$ vim ReadMe
[lxy@hecs-165234 gitcode]$ cat ReadMe
Hello world

develop
[lxy@hecs-165234 gitcode]$ git add .
[lxy@hecs-165234 gitcode]$ git commit -m "develop"
[dev3 344d59d] develop
 1 file changed, 2 insertions(+)
[lxy@hecs-165234 gitcode]$ git checkout master
Switched to branch 'master'
[lxy@hecs-165234 gitcode]$ git branch -d dev3
error: The branch 'dev3' is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev3'.
[lxy@hecs-165234 gitcode]$ git branch -D dev3
Deleted branch dev3 (was 344d59d).
[lxy@hecs-165234 gitcode]$ git branch
* master

 

git 分支管理就到这里结束了,下次我们说关于 git 的远程操作~ 

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

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

相关文章

省电,AMD 提交 Linux 新技术 FreeSync Panel Replay

导读AMD 近日发布了一系列补丁&#xff0c;为其 AMDGPU Linux 内核显卡驱动程序的显示代码 “DC” 添加了一个新功能&#xff1a;FreeSync Panel Replay。这个功能针对搭载 DCN v3.1.4 显示块或更新版本的 AMD Ryzen 笔记本电脑&#xff0c;可以在屏幕内容不变时降低功耗。 目…

关于https的加密流程简介(图解)

目录 对称加密&#xff1a; 非对称加密 对称加密&#xff1a; 在网络发展的初阶&#xff0c;为了保护数据安全&#xff0c;防止黑客攻击&#xff0c;我们发明了对称加密 即一把秘钥&#xff0c;客户端和服务器通过这把钥匙对数据进行加密/解密 理想情况下&#xff0c;只要没…

第163天:应急响应-后门攻击检测指南Rookit内存马权限维持WINLinux

知识点 #知识点 -网页篡改与后门攻击防范应对指南 主要需了解&#xff1a;异常特征&#xff0c;处置流程&#xff0c;分析报告等 主要需了解&#xff1a;日志存储&#xff0c;Webshell检测&#xff0c;分析思路等 掌握&#xff1a; 中间件日志存储&#xff0c;日志格式内容介绍…

Qt之QMainWindow 自定义标题栏

简述 Qt自带标题栏功能还是很强大的&#xff0c;但是确实不能百分百满足需求&#xff0c;除了丑以外还不能随意更改标题栏字体&#xff0c;也不能更改样式&#xff1b;所以为了满足自己的虚荣心让标题栏变得更加好用看好看&#xff0c;特地花时间做了以下测试&#xff1b; 支持…

MySQL:数据的增删改查

数据的增删改查 前言一、插入数据1、实际问题2、方式1&#xff1a;VALUES的方式添加3、方式2&#xff1a;将查询结果插入到表中 二、删除数据三、更新数据四、查询数据五、MySQL8新特性&#xff1a;计算列 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知…

Dubbo sentinel 哨兵 熔断 慢调用比例、异常比例、异常数

目录 熔断报这个错误 在调用程序中检测即可 页面配置熔断&#xff0c;配置在 consumer 消费端 慢调用比例规则 最大rt 比例阈值 熔断时长 最小请求数 统计时长 让流量一直降低发送 异常数量 设置30个异常数 Tps 异常数量未达到30个正常运行 设置1个效果直接连续…

git bash 命令行反应慢、卡顿

1. 在Windows11的电脑上安装了git 后&#xff0c;鼠标右键打开git bash here&#xff0c;打开窗口缓慢&#xff0c;输入命令也慢的要死&#xff0c;如果安装git的时候选择在桌面创建图标&#xff0c;通过桌面图标打开也是一样的 2. 最简单的ls 命令&#xff0c;都要停顿半秒 3.…

Spring Security OAuth2.0(4):Spring Security集成SpringBoot

文章目录 前言一、创建工程二、spring容器配置三、Servlet Context配置四、安全配置五、创建测试七、启动服务器测试 前言 \qquad Spring Boot 是一套Spring的快速开发框架&#xff0c;基于Spring4.0设计&#xff0c;使用Spring Boot开发可以避免一些繁琐的工程搭建和配置&…

d3dx9_43.dll丢失怎么解决

d3dx9_43.dll丢失的影响 当我们在运行某些需要DirectX 9支持的程序时&#xff0c;如果系统中缺少d3dx9_43.dll文件&#xff0c;就会出现错误提示&#xff0c;导致程序无法正常启动。这个错误提示通常会类似于“找不到d3dx9_43.dll”或“d3dx9_43.dll不存在”。 打开电脑浏览器…

剑指 Offer 37: 序列化二叉树

这道题很复杂&#xff0c;首先需要发现是层序遍历&#xff0c;因为只有层序遍历才是这个顺序&#xff0c;并且new就可以调用&#xff0c;说明这里里面就生成了一个新的String&#xff08;可以new一个String&#xff09;&#xff0c;给StringBuilder初始化一个]&#xff0c;然后…

力扣题库刷题笔记31--下一个排列

1、题目如下&#xff1a; 2、个人Python代码实现如下&#xff1a; 前几次提交错误&#xff0c;主要是在上面截图第19行代码&#xff0c;原先写的是Nums nums[:i] temp&#xff0c;然后本地一直能跑过&#xff0c;这里不做多赘述 3、个人Python代码思路&#xff1a; 首先来讲本…

使用springboot框架Java+vue2开发的智慧班牌系统源码,SaaS云平台前后端分离架构

智慧班牌系统可实现数字化办公&#xff0c;对外向学生家长提供各种服务&#xff0c;如&#xff1a;消息通知、请假管理&#xff0c;校园活动&#xff0c;学生动态&#xff0c;教师通讯录&#xff0c;学生定位等各种服务。对内向教师提供各类服务&#xff0c;如&#xff1a;班级…

SpringMVC-1

学习笔记&#xff1a; SpringMVC 框架 Spring Web MVC 是一种基于 Java 实现了 MVC 设计模式的请求驱动型的轻量级 Web 框架&#xff0c;即使用了 MVC 架构模式的思想&#xff0c;将 web 层进行职责解耦&#xff0c;基于请求驱动指的就是使用请求-响应模型&#xff0c;框架的…

[PG]查看数据库大小

查看库大小 select d."oid" as "对象ID", d."datname" as "实例名", d."owner" as "所属者",pg_catalog.pg_size_pretty(d."size") as "大小" from (select oid, datname, pg_catalog.pg_ge…

小程序根据登录的角色动态设置 tabBar

根据登录的状态来展示tabbar的名称 type1 》 供应商 》 合同 送货单 我的 type2 》 监理 》 合同 抽检单 我的 在登录之后就拿到type的值 以及登陆之后跳转到合同页面 在合同页面可以书写逻辑 onShow(){if (Number(uni.getStorageSync("type")) 2) {console.log(11…

mybatis表达式判断引发的问题

在做条件查询的时候&#xff0c; 看似好像没啥问题&#xff0c;但是在查询的时候&#xff0c;检索条件无效&#xff0c;只要把! 去掉就好了&#xff0c; 完美解决。

记录第一次组装电脑遇到的坑

京东装机大师配置清单如下&#xff1a; 主板cpu安装 本次安装拆了两次主板 原因1.主板侧面有个金属板需要从内部安装 2.cpu风扇有个板需要装在主板底下 显卡比较大个要最后装&#xff0c;要不然可能要拆好几次 装系统时候 u盘启动认不出来&#xff0c;他妈的是因为机箱上的usb…

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(三)

文章目录 源码资源下载Python环境试玩controlnet训练数据准备选一个Stable diffusion模型开始训练 第一篇&#xff1a;https://qq742971636.blog.csdn.net/article/details/131531168 源码资源下载 目前 ControlNet 1.1 还在建设&#xff0c;本文这里使用源码 https://github…

MSP432自主开发笔记2:八路寻迹模块的编程

今日得以继续我的MSP432学习之路&#xff0c;今日学习八路寻迹模块的编程与测试&#xff1a; 本章需要掌握的知识只有俩个&#xff1a;串口通信发送数据、GPIO基础初始化与获取电平状态 这俩个在我专栏里都可寻到&#xff0c;大家可以自行查找~~ 八路灰度寻迹模块的原理与应用…

【UE5 Cesium】13-Cesium for Unreal 加载本地倾斜摄影

目录 效果 步骤 一、获取倾斜摄影资源 二、使用CesiumLab转换 三、在UE中加载转换后的倾斜摄影 效果 步骤 一、获取倾斜摄影资源 首先下载免费的资源&#xff0c;这里是从規劃署 香港三維實景模型 规划署 香港三维实景模型下载的&#xff0c; 我下载了如下6个区域的资源…