尚硅谷Git课程 | Git(idea版本)笔记

news2024/11/27 22:42:41

尚硅谷Git课程 | Git(idea版本) 笔记

文章目录

  • 尚硅谷Git课程 | Git(idea版本) 笔记
    • 工作机制
    • 代码托管中心
    • git安装(看视频)
    • Git常用命令
      • 设置用户签名
      • 初始化本地库
      • 查看状态
      • 添加暂存区
      • 提交本地库
      • 查看git历史版本
      • 修改文件
      • 版本穿梭
    • Git分支操作
      • 分支的好处
      • 查看分支
      • 创建分支
      • 切换分支
      • 分支合并
      • 冲突合并
    • Git团队协作机制
    • GitHub操作
      • 常用命令
        • 创建远程库别名
        • 推送本地分支上的内容到远程仓库
        • 拉取远程库内容
        • 克隆
      • 邀请加入团队
      • 跨团队操作
      • SSH免密登录
    • IDEA集成GIT
      • 配置Git忽略文件
    • IDEA集成Github
    • 自建代码托管平台-GitLab

工作机制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jOLrLgFO-1676364988923)(C:\Users\77\AppData\Roaming\Typora\typora-user-images\image-20230208115546825.png)]

工作区:指的是存放代码目录的位置

暂存区:将工作区的代码添加到暂存区,暂存区里面的代码是临时存储,暂存区的代码可以删掉,没有历史版本

本地库:暂存区提交本地库,本地库就会生成对应的历史版本,无法删除

代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。代码可以从本地库推送到远程库,使用push

➢ 局域网

✓ GitLab

➢ 互联网

✓ GitHub(外网)

✓ Gitee 码云(国内网站)

git安装(看视频)

Git常用命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户签名
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m “日志信息” 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭

设置用户签名

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

查看用户签名

$ cat ~/.gitconfig

初始化本地库

git init 

查看使用ll

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo
$ git init
Initialized empty Git repository in D:/java-02P/git-demo/.git/

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ ll
total 0

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ ll -a
total 8
drwxr-xr-x 1 77 197121 0 Feb  8 12:23 ./
drwxr-xr-x 1 77 197121 0 Feb  8 12:23 ../
drwxr-xr-x 1 77 197121 0 Feb  8 12:23 .git/

查看状态

查看状态:git status

分支在master下面,没有可以提交的内容

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

linux和git的命令使通用的

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ vim hello.txt

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ cat hello.txt
hello xiaoqi

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ ll
total 1
-rw-r--r-- 1 77 197121 13 Feb  8 12:26 hello.txt
77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        hello.txt

nothing added to commit but untracked files present (use "git add" to track)

红色的hello代表还在工作区,没有追踪过文件

添加暂存区

添加暂存区:git add

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ 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
77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   hello.txt

绿色代表,已经追踪到了文件,存在了暂存区,可以使用git rm --cached进行删除

提交本地库

git commit -m “日志信息 文件名

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git commit -m "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) f9284ae] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt

f9284ae:版本号

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git status
On branch master
nothing to commit, working tree clean

是一个干净的本地库

查看git历史版本

git reflog 查看版本信息

git log 查看版本详细信息

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git reflog
f9284ae (HEAD -> master) HEAD@{0}: commit (initial): first commit
77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git log
commit f9284ae3b530f1924583d445246a984374768d05 (HEAD -> master)
Author: xiaoqi <719189161@qq.com>
Date:   Wed Feb 8 12:34:49 2023 +0800

    first commit

修改文件

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ vim hello.txt

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hello.txt

no changes added to commit (use "git add" and/or "git commit -a")

修改hello.txt,查看状态,提示已经修改但是还有add到暂存区

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ 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

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   hello.txt

add暂存区

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git commit -m "second 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 decaa94] second commit
 1 file changed, 4 insertions(+)

commit

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git reflog
decaa94 (HEAD -> master) HEAD@{0}: commit: second commit
f9284ae HEAD@{1}: commit (initial): first commit

查看发现有两个版本

版本穿梭

git reset --hard 版本号

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git reflog
ef15874 (HEAD -> master) HEAD@{0}: commit: third commit
decaa94 HEAD@{1}: commit: second commit
f9284ae HEAD@{2}: commit (initial): first commit

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git reset --hard decaa94
HEAD is now at decaa94 second commit

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git reflog
decaa94 (HEAD -> master) HEAD@{0}: reset: moving to decaa94
ef15874 HEAD@{1}: commit: third commit
decaa94 (HEAD -> master) HEAD@{2}: commit: second commit
f9284ae HEAD@{3}: commit (initial): first commit

可以查看文件里面的版本号

.\git-demo\.git\refs\heads

Git分支操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-feFeocyq-1676364988924)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230209191623197.png)

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7qaAskBQ-1676364988925)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230209191714501.png)

不同的分支,可以并行开发迭代

分支的好处

同时并行推进多个功能开发,提高开发效率

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

查看分支

git branch -v

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git branch -v
* master decaa94 second commit

(*代表当前所在的分区)

创建分支

git branch 分支名

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git branch hot-fix

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git branch -v
  hot-fix decaa94 second commit
* master  decaa94 second commit

hot-fix 热修分支

切换分支

git checkout 分支名

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)

修改文件

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)
$ vim hello.txt

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)
$ git status
On branch hot-fix
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hello.txt

no changes added to commit (use "git add" and/or "git commit -a")

add和commit

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)
$ git add hello.txt

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)
$ git commit -m "hot-fix frist commit" hello.txt
[hot-fix 5a03f23] hot-fix frist commit
 1 file changed, 7 insertions(+)

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)
$ git status
On branch hot-fix
nothing to commit, working tree clean

查看文件发现有两个指针

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U68kZCu5-1676364988926)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230209193001706.png)

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)
$ git reflog
5a03f23 (HEAD -> hot-fix) HEAD@{0}: commit: hot-fix frist commit
decaa94 (master) HEAD@{1}: checkout: moving from master to hot-fix
decaa94 (master) HEAD@{2}: reset: moving to decaa94
ef15874 HEAD@{3}: commit: third commit
decaa94 (master) HEAD@{4}: commit: second commit
f9284ae HEAD@{5}: commit (initial): first commit

切换到master分支之后,可以发现hello.txt中的内容没有发生改变

分支合并

git merge 分支名 ,把制定的分支合并到当前分支上

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git merge hot-fix
Updating decaa94..5a03f23
Fast-forward
 hello.txt | 7 +++++++
 1 file changed, 7 insertions(+)

合并完毕之后发现hot-fix分支上的hello.txt替换掉了master上的

没有产生冲突的原因是,master上的文件没有发生修改,hot-fix上的文件是基于master修改的,所以可以合并成功

冲突合并

冲突产生的原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。

冲突产生的表现:后面状态为 MERGING

现在master分支上进行修改

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ vim hello.txt

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git add hello.txt

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git commit -m "master 4 commit" hello.txt
[master 4ad9fd9] master 4 commit
 1 file changed, 1 insertion(+), 1 deletion(-)

切换到hot-fix

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'

修改分支上的hello.txt

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)
$ vim hello.txt

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)
$ git add hello.txt

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)
$ git commit -m "hit-fix second commit" hello.txt
[hot-fix 3fa92d6] hit-fix second commit
 1 file changed, 2 insertions(+), 2 deletions(-)

切换回到master

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (hot-fix)
$ git checkout master
Switched to branch 'master

合并失败,产生了代码冲突

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (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.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tbGql2wT-1676364988927)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230209194114519.png)

MERGING:正在合并中的状态

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (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.txt

no changes added to commit (use "git add" and/or "git commit -a")

打开hello文件发现等号前面的为master分支的内容,后面为hot-fix内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ypus0L2m-1676364988928)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230209194335457.png)

需要自己手动将这些内容进行取舍,使用dd删除一行

add和commit操作

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master|MERGING)
$ git add hello.txt

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master|MERGING)
$ git commit -m "merge"
[master 45f5e0a] merge

执行提交(注意:此时使用 git commit 命令时不能带文件名)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZkL5Kv4F-1676364988928)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230209195328526.png)

修改完毕

master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由 HEAD决定的。所以创建分支的本质就是多创建一个指针。

HEAD 如果指向 master,那么我们现在就在 master 分支上。

HEAD 如果执行 hotfix,那么我们现在就在 hotfix 分支上。

所以切换分支的本质就是移动 HEAD 指针。

Git团队协作机制

团队内

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aoIYZhjk-1676364988929)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230209195557605.png)

跨团队协作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1wxD38yE-1676364988930)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230209195622582.png)

GitHub操作

常用命令

命令名称作用
git remote -v查看当前所有远程地址别名
git remote add 别名 远程地址起别名
git push 别名 分支推送本地分支上的内容到远程仓库
git clone 远程地址将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并

创建远程库别名

git remote -v 查看当前所有远程地址别名

git remote add 别名 远程地址

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git remote -v

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git remote add git-demo https://github.com/Anianqi/git-demo.git

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git remote -v
git-demo        https://github.com/Anianqi/git-demo.git (fetch)
git-demo        https://github.com/Anianqi/git-demo.git (push)

远程库别名既可以获得fetch也可以push推送

推送本地分支上的内容到远程仓库

git push 别名 分支

$ git push git-demo master

拉取远程库内容

git pull 远程库地址别名 远程分支名

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git pull git-demo master
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 651 bytes | 108.00 KiB/s, done.
From https://github.com/Anianqi/git-demo
 * branch            master     -> FETCH_HEAD
   45f5e0a..b650e2b  master     -> git-demo/master
Updating 45f5e0a..b650e2b
Fast-forward
 hello.txt | 1 +
 1 file changed, 1 insertion(+)

查看本地库状态

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git status
On branch master
nothing to commit, working tree clean

本地库是干净的,说明拉取直接提交本地库

这样远程库和本地库的代码是同步的

克隆

git clone 地址

克隆之前拿到代码的连接

克隆代码不需要账号密码

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo02
$ git clone https://github.com/Anianqi/git-demo.git
Cloning into 'git-demo'...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 21 (delta 4), reused 17 (delta 3), pack-reused 0
Receiving objects: 100% (21/21), done.
Resolving deltas: 100% (4/4), done.

地址为远程仓库地址,克隆结果:初始化本地仓库

小结:clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名

邀请加入团队

在github库的setting中进行邀请操作,就可以让成员push代码

使用不同的账号进行推送和拉取操作

跨团队操作

使用fork和pull request的方式完成

SSH免密登录

我们可以看到远程仓库中还有一个 SSH 的地址,因此我们也可以使用 SSH 进行访问。

使用加密的方式生成ssh

-C 描述

rsa 非对称加密算法

ssh-keygen -t rsa -C 719189161@qq.com 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BeTKTDY4-1676364988931)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230214143333109.png)

获取公钥

cat id_rsa.pub

使用SSH协议pull代码

77@XIAOQI-1106 MINGW64 /d/java-02P/git-demo (master)
$ git pull git@github.com:Anianqi/git-demo.git master
The authenticity of host 'github.com (20.27.177.113)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), 1.25 KiB | 67.00 KiB/s, done.
From github.com:Anianqi/git-demo
 * branch            master     -> FETCH_HEAD
Updating ea7db16..15b9455
Fast-forward
 hello.txt | 1 +
 1 file changed, 1 insertion(+)

git push ssh 分支

git pull ssh 分支

IDEA集成GIT

配置Git忽略文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sdJ7WFgx-1676364988933)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230214150440848.png)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zz50tWaK-1676364988933)(尚硅谷Git课程  Git(idea版本,涵盖GitHub、Gitee码云、GitLab)] 笔记.assets/image-20230214150450641.png)

问题 1:为什么要忽略他们?

答:与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异。

问题 2:怎么忽略?

创建忽略规则文件 xxxx.ignore(前缀名随便起,建议是 git.ignore)

这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig 文件引用,建议也放在用户家目录下

不同的idea版本可能和视频中的操作略微不一样

IDEA集成Github

可以使用口令和账号两种方式登陆

注意:push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致, push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!

自建代码托管平台-GitLab

内存有限 手动放弃

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

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

相关文章

安全渗透环境准备(工具下载)

数据来源 01 一些VM虚拟机的安装 攻击机kali&#xff1a; kali官网 渗透测试工具Kali Linux安装与使用 kali汉化 虚拟机网络建议设置成NAT模式&#xff0c;桥接有时不稳定。 靶机OWASP_Broken_Web_Apps&#xff1a; 迅雷下载 网盘下载 安装教程 开机之后需要登录&am…

UE4 使用控件蓝图的动画功能实现UI的淡入淡出

效果&#xff1a;步骤&#xff1a;首先PS一张背景纯黑&#xff0c;边缘有羽化效果的图片&#xff1a;新建一个控件蓝图&#xff0c;创建一个图像和按钮控件&#xff0c;控件的初始位置如下所示&#xff0c;设置图像一开始为完全透明新建两个动画&#xff0c;分别命名为“向左移…

高可用架构:异地多活

前言&#xff1a;多「活」、多「备」是两个相对的概念&#xff0c;设计和实现的难度相差很大&#xff0c;不要搞混了 1.为什么要做多活 在一些极端场景下&#xff0c;有可能所有服务器都出现故障&#xff0c;例如机房断电、机房火灾、地震等这些不卡抗拒因素会导致系统所有服务…

多线程之死锁,哲学家就餐问题的实现

1.死锁是什么 死锁是这样一种情形&#xff1a;多个线程同时被阻塞&#xff0c;它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞&#xff0c;因此程序不可能正常终止。 2.哲学家就餐问题 有五个哲学家&#xff0c;他们的生活方式是交替地进行思考和进餐…

网际协议IP

网际协议IP 文章目录网际协议IP[toc]虚拟互联网IP地址及其表示方法分类IP地址(两级)无分类编址 CIDR网路前缀地址块地址掩码子网划分&#xff08;三级IP地址&#xff09;IP地址和MAC地址地址解析协议ARPIP数据报的格式IP数据报首部的固定部分中的各字段IP数据报首部的可变部分分…

REDIS-雪崩、击穿、穿透

直接发车&#x1f697; 一.雪崩 1.触发原因 A.大量缓存数据在同一时间过期(失效) B.redis故障宕机 上述均导致全部请求去访问数据库&#xff0c;导致DB压力骤增&#xff0c;严重则导致数据库宕机/系统宕机 2.应对策略 不同触发原因&#xff0c;应对策略也不一致 应对A&a…

C# SolidWorks二次开发 API-命令标签页的切换与按钮错乱问题

这是一个网友咨询的问题&#xff0c;说他想控制默认打开文件之后solidworks上方工具栏的当前激活标签页。 之前我们提到过,制作Solidworks的插件也会在上面增加一个标签页&#xff0c;用来放自己开发的命令&#xff0c;经常开发的人肯定会遇到有时候更新版本&#xff0c;或者标…

奥威软件宏昊化工启动BI项目,打造智能制造标杆

近日&#xff0c;中国纺织行业领先企业宏昊化工有限公司成功启动了与奥威签订的BI项目&#xff0c;期望通过BI的建立进一步提升企业数字化经营能力和核心竞争力。 奥威bi数据分析软件 在全球经济形势不明朗&#xff0c;国内外市场竞争加剧叠加疫情反复的情况下&#xff0c;化工…

初学vector

目录 string的收尾 拷贝构造的现代写法&#xff1a; 浅拷贝&#xff1a; 拷贝构造的现代写法&#xff1a; swap函数&#xff1a; 内置类型有拷贝构造和赋值重载吗&#xff1f; 完善拷贝构造的现代写法&#xff1a; 赋值重载的现代写法&#xff1a; 更精简的现代写法&…

1.5配置NBMA和P2MP网络类型

1.3.3实验5:配置NBMA和P2MP网络类型 1. 实验需求 控制OSPF DR的选举修改OSPF的网络类型2. 实验拓扑 配置NBMA和P2MP网络类型实验拓扑如图1-13所示。 图1-13 配置NBMA和P2MP网络类型 3. 实验步骤 帧中继的配置如图1-14和图1-15所示

软件测试——测试用例之场景法

一、场景法的应用场合 场景法主要用于测试软件的业务流程和业务逻辑。场景法是基于软件业务的测试方法。在场景法中测试人员把自己当成最终用户&#xff0c;尽可能真实的模拟用户在使用此软件的操作情景&#xff1a; 重点模拟两类操作&#xff1a; 1&#xff09;模拟用户正确…

仓库拣货标签应用案例

使用场景&#xff1a;富士康成都仓库 解决问题&#xff1a;仓库亮灯拣选&#xff0c; 提高作业效率和物料明晰展示仓库亮灯拣选使用场景&#xff1a;京东仓库 解决问题&#xff1a;播种墙分拣&#xff0c;合单拣货完成后按订单播种播种墙分拣使用场景&#xff1a;和尔泰智能料…

Ubuntu 20中安装SNAP

Ubuntu 20中安装SNAP0 前言1 下载SNAP安装包2 安装SNAP详细步骤0 前言 姊妹篇《Ubuntu 20中安装snaphu》 SNAP是欧空局领导开发的开源的遥感数据处理软件&#xff0c;主要支持欧空局的数据&#xff0c;如sentinel-系列等。SNAP下载官网&#xff1a;https://step.esa.int/main…

算法训练营 day46 动态规划 最后一块石头的重量 II 目标和 一和零

算法训练营 day46 动态规划 最后一块石头的重量 II 目标和 一和零 最后一块石头的重量 II 1049. 最后一块石头的重量 II - 力扣&#xff08;LeetCode&#xff09; 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xf…

百度百科创建词条教程合集分享,赶紧收藏起来

每一个企业、品牌、人物、产品想要提升自己的知名度&#xff0c;都要创建一个属于自己的百度百科词条&#xff0c;互联网时代&#xff0c;百度搜索引擎的地位是不可撼动的&#xff0c;每天都有上亿的用户在百度上搜索相关内容&#xff0c;百度百科词条在网络营销中占据着举足轻…

Oracle对象——视图之简单视图与视图约束

文章目录什么是视图为什么会使用视图视图语法案例简单视图的创建更改数据基表&#xff0c;视图数据会变化么&#xff1f;更改视图数据&#xff0c;基表数据会变更么&#xff1f;带检查约束的视图结论创建只读视图&#xff08;MySQL不支持&#xff09;总结什么是视图 视图是一种…

【项目精选】高校固定资产管理系统(论文+视频+源码)

点击下载源码 随着计算机信息技术的发展以及对资产、设备的管理科学化、合理化的高要求&#xff0c;利用计算机实现设备及资产的信息化管理已经显得非常重要。 固定资产管理系统是一个单位不可缺少的部分。但一直以来人们使用传统的人工方式管理固定资产的信息&#xff0c;这种…

C++STL剖析(六)—— set和multiset的概念和使用

文章目录&#x1f31f; 前言&#x1f351; 树型结构和哈希结构&#x1f351; 键值对1. set的介绍和使用&#x1f351; set的模板参数列表&#x1f351; set的构造&#x1f351; set的使用&#x1f345; insert&#x1f345; find&#x1f345; erase&#x1f345; swap&#x1…

Java基础之异常

目录1 异常1.1 异常的概述1.2 常见异常类型1.3 JVM的默认处理方案1.4 编译时异常的处理方式1.4.1 异常处理之 try ... catch ... [ktʃ]&#xff08;捕获异常&#xff09;1.4.2 异常处理之 throws&#xff08;抛出异常&#xff09;1.5 Throwable 的成员方法1.6 编译时异常和运行…

H5 抽奖页面

好久之前就想去写一个这样的示例了&#xff0c;然后就忘了…&#x1f635; &#x1f600;效果 &#x1f587;在线链接 https://linyisonger.github.io/H5.Examples/?name./34.%E6%8A%BD%E5%A5%96%E9%A1%B5%E9%9D%A2.html &#x1f6a7; 图片可能会丢失&#xff0c;都是在网…