git-jenkins阶段01 DevOps介绍, 版本控制系统, Git的安装与应用(内容对比,历史记录,恢复,分支)

news/2025/1/20 1:43:10/文章来源:https://www.cnblogs.com/ludingchao/p/18239149

1.DevOps介绍

铁三角
开发    测试    运维老板的想法  产品经理的构造  开发的代码实现  测试的功能测试  运维平台构建  代码的上线开发    测试        变化    代码的更新
运维             稳定      网站能够正常运行下去

2. 版本控制系统

vcs
记录文件的所有的历史变化
随时可以恢复到任何一个历史状态
多人进行协作开发常见的版本管理工具
Git
SVN        集中式的版本控制(SVN公司管理)

3.Git的安装与应用

#环境准备(需要2g内存)
[root@git ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) [root@git ~]# uname -r
3.10.0-957.el7.x86_64[root@git ~]# getenforce
Disabled[root@git ~]# iptables-save        #命令执行没有输出结果,表示防火墙是关闭的
[root@git ~]# #安装
[root@git ~]# yum install -y git

[root@git ~]# git config
usage: git config [options]Config file location--global              use global config file        #全局--system              use system config file        #系统级别配置--local               use repository config file    #使用版本库级别配置#配置git使用用户
[root@git ~]# git config --global user.name "qls"
[root@git ~]# git config --global user.email "123@qq.com"    #配置用户的邮箱
#配置全局,语法高亮
[root@git ~]# git config --global color.ui true
#显示配置列表
[root@git ~]# git config --list
user.name=qls
user.email=123@qq.com
color.ui=true
#此时会多出.gitconfig, 就是git的配置文件
[root@git ~]# ll -a
total 40
...
-rw-r--r--   1 root root   58 Jun  4 00:34 .gitconfig
#查看配置文件
[root@git ~]# cat .gitconfig 
[user]name = qlsemail = 123@qq.com
[color]ui = true#Git初始化
#创建工作目录
[root@git ~]# mkdir git_data
[root@git ~]# cd git_data/
[root@git git_data]# ll
total 0
[root@git git_data]# git init    #初始化工作目录
Initialized empty Git repository in /root/git_data/.git/
[root@git git_data]# ll .git/
total 12
drwxr-xr-x 2 root root   6 Jun  4 00:40 branches        #分支目录
-rw-r--r-- 1 root root  92 Jun  4 00:40 config            #特有的配置选项
-rw-r--r-- 1 root root  73 Jun  4 00:40 description        #Git web程序使用的
-rw-r--r-- 1 root root  23 Jun  4 00:40 HEAD            #指示当前的分支
drwxr-xr-x 2 root root 242 Jun  4 00:40 hooks            #Git的钩子文件
drwxr-xr-x 2 root root  21 Jun  4 00:40 info            #全局排除文件(exclude文件)
drwxr-xr-x 4 root root  30 Jun  4 00:40 objects            #存放所有数据     info  pack
drwxr-xr-x 4 root root  31 Jun  4 00:40 refs            #存放指向数据分支的提交的对象的指针index             #保存暂存区信息(非文件)
[root@git git_data]# git status        #查看工作区的状态
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)

4.Git常规使用

git的一家子
工作目录    暂存区域    本地仓库    远程仓库

 

Git的四种状态
Untracked    为跟踪
Unmodified    未修改
Modified    已修改
Staged        已暂存Git的基础命令[root@git git_data]# git status        #显示当前工作区的状态
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)#创建一些测试文件
[root@git git_data]# touch test.txt
[root@git git_data]# touch oldboy.txt
[root@git git_data]# touch oldgirl.txt
[root@git git_data]# git status
# On branch master
#
# Initial commit
#
# Untracked files:        #发现未跟踪的文件
#   (use "git add <file>..." to include in what will be committed)
#
#    oldboy.txt
#    oldgirl.txt
#    test.txt
nothing added to commit but untracked files present (use "git add" to track)#文件提交到暂存区

[root@git git_data]# git add test.txt    #将文件提交到暂存区
[root@git git_data]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)    #可以删除暂存区下该文件
#
#    new file:   test.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    oldboy.txt
#    oldgirl.txt
[root@git git_data]# git add .    #添加所有文件到暂存区        或者使用    git add *
[root@git git_data]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#    new file:   oldboy.txt
#    new file:   oldgirl.txt
#    new file:   test.txt

[root@git git_data]# git rm --cached test.txt    #从暂存区将文件删除
rm 'test.txt'
[root@git git_data]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#    new file:   oldboy.txt
#    new file:   oldgirl.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    test.txt
[root@git git_data]# rm -rf test.txt     #删除工作目录中的文件
[root@git git_data]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#    new file:   oldboy.txt
#    new file:   oldgirl.txt#删除文件
两种方法第一种1.先删除暂存区里面的文件,再删除工作目录中的文件
git rm --cached test.txt
rm -rf test.txt2.直接从暂存区连同工作目录中的文件删除
[root@git git_data]# git rm -f oldgirl.txt
rm 'oldgirl.txt'
[root@git git_data]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#    new file:   oldboy.txt
#
[root@git git_data]# ls
oldboy.txt#从暂存区提交到本地仓库    -m 注释信息
[root@git git_data]# git commit -m "new 3 file"
[master (root-commit) 220403a] new 3 file3 files changed, 0 insertions(+), 0 deletions(-)create mode 100644 a.txtcreate mode 100644 b.txtcreate mode 100644 oldboy.txt
[root@git git_data]# git status
# On branch master
nothing to commit, working directory clean#文件重命名
两种方法
1.本地重命名,修改工作目录中文件的名称
[root@git git_data]# mv a.txt aaa.txt
[root@git git_data]# git status
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)#通过暂存区覆盖回来
#
#    deleted:    a.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    aaa.txt
no changes added to commit (use "git add" and/or "git commit -a")2.删除暂存区中的文件
[root@git git_data]# git rm --cached a.txt
rm 'a.txt'
[root@git git_data]# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    deleted:    a.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    aaa.txt3.将重命名好的文件提交到暂存区
[root@git git_data]# git add .
[root@git git_data]# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    renamed:    a.txt -> aaa.txt4.提交到本地仓库
[root@git git_data]# git commit -m "mv a.txt aaa.txt"
[master 1c67b18] mv a.txt aaa.txt1 file changed, 0 insertions(+), 0 deletions(-)rename a.txt => aaa.txt (100%)第二种方法直接使用git进行重命名
[root@git git_data]# git mv b.txt bbb.txt
[root@git git_data]# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    renamed:    b.txt -> bbb.txt
#

提交到本地仓库
[root@git git_data]# git commit -m "mv b.txt bbb.txt"
[master 87498ce] mv b.txt bbb.txt1 file changed, 0 insertions(+), 0 deletions(-)rename b.txt => bbb.txt (100%)#文件内容比对#比对工作目录与暂存区文件内容不同之处[root@git git_data]# echo "1111111111111" >> oldboy.txt[root@git git_data]# git diff oldboy.txt
diff --git a/oldboy.txt b/oldboy.txt
index e69de29..a5fdf3a 100644
--- a/oldboy.txt
+++ b/oldboy.txt
@@ -0,0 +1 @@
+1111111111111[root@git git_data]# git add oldboy.txt        #将文件提交到暂存区
[root@git git_data]# git diff oldboy.txt    #再次进行比对发现,暂存区域工作目录的内容相同#比对暂存区文件内容和本地仓库文件内容不同之处

[root@git git_data]# git diff --cached oldboy.txt
diff --git a/oldboy.txt b/oldboy.txt
index e69de29..a5fdf3a 100644
--- a/oldboy.txt
+++ b/oldboy.txt
@@ -0,0 +1 @@
+1111111111111
[root@git git_data]# git commit -m "modify oldboy.txt"    #提交到本地仓库
[master 91d1614] modify oldboy.txt1 file changed, 1 insertion(+)
[root@git git_data]# git diff --cached oldboy.txt
[root@git git_data]# echo "222222" >> oldboy.txt 
#同时提交暂存区和本地仓库
[root@git git_data]# git commit -am "modify oldboy.txt 2"
[master a88a12f] modify oldboy.txt 21 file changed, 1 insertion(+)#查看Git的历史操作记录
[root@git git_data]# git log
commit a88a12fc0ef8e6a525c9a8e137a246f5f8459524
Author: qls <123@qq.com>
Date:   Fri Jun 7 04:34:28 2024 +0800modify oldboy.txt 2#使用一行来显示Git的历史记录
[root@git git_data]# git log --oneline
a88a12f modify oldboy.txt 2
91d1614 modify oldboy.txt
87498ce mv b.txt bbb.txt
1c67b18 mv a.txt aaa.txt
220403a new 3 file#decorate 显示当前指针所指向的分支
[root@git git_data]# git log --oneline --decorate
a88a12f (HEAD, master) modify oldboy.txt 2
91d1614 modify oldboy.txt
87498ce mv b.txt bbb.txt
1c67b18 mv a.txt aaa.txt
220403a new 3 file#显示具体内容的变化
[root@git git_data]# git log -p
commit a88a12fc0ef8e6a525c9a8e137a246f5f8459524
Author: qls <123@qq.com>
Date:   Fri Jun 7 04:34:28 2024 +0800modify oldboy.txt 2diff --git a/oldboy.txt b/oldboy.txt
index a5fdf3a..c217021 100644
--- a/oldboy.txt
+++ b/oldboy.txt
@@ -1 +1,2 @@1111111111111
+222222
...#显示最近的一次记录(可修改次数)
[root@git git_data]# git log -1
commit a88a12fc0ef8e6a525c9a8e137a246f5f8459524
Author: qls <123@qq.com>
Date:   Fri Jun 7 04:34:28 2024 +0800modify oldboy.txt 2#恢复历史数据
1.改变了工作区中文件的内容,发现改错了(或者文件被误删了)
[root@git git_data]# echo "44444" >> oldboy.txt
[root@git git_data]# git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    modified:   oldboy.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
#将暂存区里面的内容覆盖到工作目录(被误删后也可以拉回来)
[root@git git_data]# git checkout -- oldboy.txt
[root@git git_data]# git status
# On branch master
nothing to commit, working directory clean
[root@git git_data]# cat oldboy.txt 
1111111111111
2222222.工作目录和暂存区都发生了改变,没有提交到本地仓库,发现改错了
[root@git git_data]# echo "444444" >>oldboy.txt 
[root@git git_data]# git add .
[root@git git_data]# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)    #将本地仓库恢复到暂存区
#
#    modified:   oldboy.txt
#
#比对本地仓库和暂存区的不同
[root@git git_data]# git diff --cached oldboy.txt
diff --git a/oldboy.txt b/oldboy.txt
index c217021..54bb024 100644
--- a/oldboy.txt
+++ b/oldboy.txt
@@ -1,2 +1,3 @@1111111111111222222
+444444#从本地仓库覆盖到暂存区
[root@git git_data]# git reset HEAD oldboy.txt
Unstaged changes after reset:
M    oldboy.txt
[root@git git_data]# git diff --cached oldboy.txt
[root@git git_data]# cat oldboy.txt 
1111111111111
222222
444444#从暂存区覆盖工作目录
[root@git git_data]# git checkout -- oldboy.txt
[root@git git_data]# cat oldboy.txt 
1111111111111
2222223.修改了工作区,暂存区,也提交到了本地仓库,发现写错了
[root@git git_data]# echo "44444" >> oldboy.txt 
[root@git git_data]# git add .
[root@git git_data]# git commit -m "modify oldboy.txt 4"
[master 09308a3] modify oldboy.txt 41 file changed, 1 insertion(+)
[root@git git_data]# git status
# On branch master
nothing to commit, working directory clean#通过历史记录来恢复数据

[root@git git_data]# git log --oneline
09308a3 modify oldboy.txt 4
a88a12f modify oldboy.txt 2
91d1614 modify oldboy.txt
87498ce mv b.txt bbb.txt
1c67b18 mv a.txt aaa.txt
220403a new 3 file
[root@git git_data]# git status
# On branch master
nothing to commit, working directory clean
[root@git git_data]# git reset --hard a88a12f    #将所有地方的数据恢复到这个快照
HEAD is now at a88a12f modify oldboy.txt 2
[root@git git_data]# cat oldboy.txt 
1111111111111
222222
[root@git git_data]# git diff oldboy.txt
[root@git git_data]# git diff --cached oldboy.txt#发现刚才恢复错了

[root@git git_data]# git log --oneline    #查看日志时,发现没有了modify 4那一次的修改了
a88a12f modify oldboy.txt 2
91d1614 modify oldboy.txt
87498ce mv b.txt bbb.txt
1c67b18 mv a.txt aaa.txt
220403a new 3 file
[root@git git_data]# git reflog        #显示所有的git历史记录
a88a12f HEAD@{0}: reset: moving to a88a12f
09308a3 HEAD@{1}: commit: modify oldboy.txt 4
a88a12f HEAD@{2}: commit: modify oldboy.txt 2
91d1614 HEAD@{3}: commit: modify oldboy.txt
87498ce HEAD@{4}: commit: mv b.txt bbb.txt
1c67b18 HEAD@{5}: commit: mv a.txt aaa.txt
220403a HEAD@{6}: commit (initial): new 3 file
[root@git git_data]# git reset --hard 09308a3
HEAD is now at 09308a3 modify oldboy.txt 4
[root@git git_data]# cat oldboy.txt 
1111111111111
222222
44444#git分支#显示你当前的指针指向哪个分支
[root@git git_data]# git log --oneline --decorate
09308a3 (HEAD, master) modify oldboy.txt 4
a88a12f modify oldboy.txt 2
91d1614 modify oldboy.txt
87498ce mv b.txt bbb.txt
1c67b18 mv a.txt aaa.txt
220403a new 3 file#创建分支
[root@git git_data]# git branch test#显示当前所在的分支
[root@git git_data]# git branch
* master        #*指向当前所在的分支
  test#切换分支
[root@git git_data]# git checkout test
Switched to branch 'test'
[root@git git_data]# git branch
  master
* test[root@git git_data]# touch test.txt
[root@git git_data]# git add .
[root@git git_data]# git commit -m "test commit"
[test d4c9af7] test commit1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 test.txt
[root@git git_data]# git log --oneline --decorate
d4c9af7 (HEAD, test) test commit
09308a3 (master) modify oldboy.txt 4
a88a12f modify oldboy.txt 2
91d1614 modify oldboy.txt
87498ce mv b.txt bbb.txt
1c67b18 mv a.txt aaa.txt
220403a new 3 file
[root@git git_data]# git checkout master    #切换到master分支
Switched to branch 'master'
[root@git git_data]# ll
total 4
-rw-r--r-- 1 root root  0 Jun  7 02:57 aaa.txt
-rw-r--r-- 1 root root  0 Jun  7 02:57 bbb.txt
-rw-r--r-- 1 root root 27 Jun  7 08:14 oldboy.txt
[root@git git_data]# git branch
* mastertest#合并分支
[root@git git_data]# git merge test
Updating 09308a3..d4c9af7
Fast-forwardtest.txt | 01 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 test.txt
[root@git git_data]# ll        #合并分支之后,test创建的文件就显示出来了
total 4
-rw-r--r-- 1 root root  0 Jun  7 02:57 aaa.txt
-rw-r--r-- 1 root root  0 Jun  7 02:57 bbb.txt
-rw-r--r-- 1 root root 27 Jun  7 08:14 oldboy.txt
-rw-r--r-- 1 root root  0 Jun  7 21:40 test.txt
[root@git git_data]# git log --oneline --decorate
d4c9af7 (HEAD, test, master) test commit
09308a3 modify oldboy.txt 4
a88a12f modify oldboy.txt 2
91d1614 modify oldboy.txt
87498ce mv b.txt bbb.txt
1c67b18 mv a.txt aaa.txt
220403a new 3 file#子分支上,合并主分支内容
[root@git git_data]# touch master.txt
[root@git git_data]# ll
total 4
-rw-r--r-- 1 root root  0 Jun  7 02:57 aaa.txt
-rw-r--r-- 1 root root  0 Jun  7 02:57 bbb.txt
-rw-r--r-- 1 root root  0 Jun  7 21:44 master.txt
-rw-r--r-- 1 root root 27 Jun  7 08:14 oldboy.txt
-rw-r--r-- 1 root root  0 Jun  7 21:40 test.txt
[root@git git_data]# git add .
[root@git git_data]# git commit -m "master touch master.txt"
[master b912bb0] master touch master.txt1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 master.txt
[root@git git_data]# git checkout test
Switched to branch 'test'
[root@git git_data]# ll
total 4
-rw-r--r-- 1 root root  0 Jun  7 02:57 aaa.txt
-rw-r--r-- 1 root root  0 Jun  7 02:57 bbb.txt
-rw-r--r-- 1 root root 27 Jun  7 08:14 oldboy.txt
-rw-r--r-- 1 root root  0 Jun  7 21:40 test.txt
[root@git git_data]# git merge master    #合并主分支
Updating d4c9af7..b912bb0
Fast-forwardmaster.txt | 01 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 master.txt
[root@git git_data]# ll
total 4
-rw-r--r-- 1 root root  0 Jun  7 02:57 aaa.txt
-rw-r--r-- 1 root root  0 Jun  7 02:57 bbb.txt
-rw-r--r-- 1 root root  0 Jun  7 21:45 master.txt
-rw-r--r-- 1 root root 27 Jun  7 08:14 oldboy.txt
-rw-r--r-- 1 root root  0 Jun  7 21:40 test.txt#合并冲突
[root@git git_data]# git checkout master
Switched to branch 'master'
[root@git git_data]# git branch
* mastertest
[root@git git_data]# echo "aaaa" >>oldboy.txt 
[root@git git_data]# git commit -am "modify master"
[master b5bf6fd] modify master1 file changed, 1 insertion(+)[root@git git_data]# git checkout test
Switched to branch 'test'
[root@git git_data]# echo "bbbb" >>oldboy.txt 
[root@git git_data]# git commit -am "modify test"
[test c22a40f] modify test1 file changed, 1 insertion(+)[root@git git_data]# git checkout master
Switched to branch 'master'
[root@git git_data]# git merge test        #合并发生冲突
Auto-merging oldboy.txt
CONFLICT (content): Merge conflict in oldboy.txt
Automatic merge failed; fix conflicts and then commit the result.[root@git git_data]# cat oldboy.txt 
1111111111111
222222
44444
<<<<<<< HEAD    #当前分支操作
aaaa
=======
bbbb            #test指针的操作
>>>>>>> test
[root@git git_data]# git log --oneline --decorate
b5bf6fd (HEAD, master) modify master
b912bb0 master touch master.txt
d4c9af7 test commit
09308a3 modify oldboy.txt 4
a88a12f modify oldboy.txt 2
91d1614 modify oldboy.txt
87498ce mv b.txt bbb.txt
1c67b18 mv a.txt aaa.txt
220403a new 3 file#手动修改冲突
[root@git git_data]# vim oldboy.txt
1111111111111
222222
44444
aaaa
[root@git git_data]# git commit -am "commit modify oldboy.txt"
[master 3f8051e] commit modify oldboy.txt#test分支 合并分支
[root@git git_data]# git checkout test
Switched to branch 'test'
[root@git git_data]# cat oldboy.txt 
1111111111111
222222
44444
bbbb
[root@git git_data]# git merge master
Updating c22a40f..3f8051e
Fast-forwardoldboy.txt | 2 +-1 file changed, 1 insertion(+), 1 deletion(-)
[root@git git_data]# cat oldboy.txt 
1111111111111
222222
44444
aaaa#删除分支
[root@git git_data]# git checkout master
Switched to branch 'master'
[root@git git_data]# git branch -d test
Deleted branch test (was 3f8051e).
[root@git git_data]# git branch
* master[root@git git_data]# git reflog
3f8051e HEAD@{0}: checkout: moving from test to master
3f8051e HEAD@{1}: merge master: Fast-forward
c22a40f HEAD@{2}: checkout: moving from master to test
3f8051e HEAD@{3}: commit (merge): commit modify oldboy.txt
b5bf6fd HEAD@{4}: checkout: moving from test to master
c22a40f HEAD@{5}: commit: modify test
b912bb0 HEAD@{6}: checkout: moving from master to test
b5bf6fd HEAD@{7}: reset: moving to b5bf6fd
f4e3d14 HEAD@{8}: commit: modify test    #z这里改错了,在主分支修改了,做了一次回退
b5bf6fd HEAD@{9}: commit: modify master
b912bb0 HEAD@{10}: checkout: moving from test to master
b912bb0 HEAD@{11}: merge master: Fast-forward
d4c9af7 HEAD@{12}: checkout: moving from master to test
b912bb0 HEAD@{13}: commit: master touch master.txt
d4c9af7 HEAD@{14}: merge test: Fast-forward
09308a3 HEAD@{15}: checkout: moving from test to master
d4c9af7 HEAD@{16}: commit: test commit
09308a3 HEAD@{17}: checkout: moving from master to test
09308a3 HEAD@{18}: reset: moving to 09308a3
a88a12f HEAD@{19}: reset: moving to a88a12f
09308a3 HEAD@{20}: commit: modify oldboy.txt 4
a88a12f HEAD@{21}: commit: modify oldboy.txt 2
91d1614 HEAD@{22}: commit: modify oldboy.txt
87498ce HEAD@{23}: commit: mv b.txt bbb.txt
1c67b18 HEAD@{24}: commit: mv a.txt aaa.txt
220403a HEAD@{25}: commit (initial): new 3 file

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql阶段04 连接工具, 连接方式, 启动关闭mysql

一、mysql连接管理 1.连接工具 1)mysql自带的连接命令 mysql#常见用于连接的参数: -u: 指定用户 mysql -uroot -p: 指定密码 mysql -uroot -p123 -h: 指定连接的主机 mysql -uroot -p123 -h10.0.0.51 -P: 指定端口 mysql -uroot …

OOP4-6次作业

OOP4-6次作业 一.前言: 1.第四次PTA: ①题目理解: 延续前面的四次PTA,只不过在此基础上进行更全面的处理,新增了其他的一些点。例如增加了多选题,的输入方式,这样,也就增加了多选题的输出方式。增加了一些填空题,对其部分正确的判断变成了一个难点,也增加了其输出的难…

第4到6次PTA大作业课后分析与反思 BLOG

前言 第4到6次大作业分为两个部分,第4次大作业是对上三次大作业的最终迭代,第5到第6次是新的大作业,是关于电路的迭代。 设计与分析 第四次大作业题目: 设计实现答题程序,模拟一个小型的测试,要求输入题目信息、试卷信息、答题信息、学生信息、删除题目信息,根据输入题目…

ch2 信息与行为

信息与行为重点(from 裴雷)阿莱悖论(独立性) 冯诺依曼公式 贝叶斯信念 信息搜寻预期收益(大题)理性人 经济理性的两个基本假定是:自利性和极大化原则自利性:在行为选择中个体总是倾向选择对自身最具有优势的选择方案 极大化原则,也可以包括极小化原则,指个体对最大幸福…

关于第四到六次PTA作业总结

一.第四到六次PTA作业的分析 1.第四次PTA作业的分析 (1). 理解题目的需求 在编程之前,准确理解题目需求至关重要。本题中,输入格式和输出格式的细节非常多,包括各种异常情况的处理,这些都需要仔细阅读题目描述,确保理解了每一个细节。在实际操作中,我采取了以下措施: …

WebLogic XMLDecoder反序列化漏洞

有关WebLogic的XMLDecoder反序列化漏洞包括CVE-2017-3506、CVE-2017-10271、CVE-2019-2725、CVE-2019-2729等,其漏洞原理相似,差异主要在于出问题的包、黑名单过滤的标签。目录前言XMLDecoder概述XMLDecoder反序列化漏洞漏洞复现 前言 上篇复现了T3反序列化漏洞,XMLDecoder反…

第四日

4. 从前序与中序遍历序列构造二叉树 题目描述:给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例:输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7] 输出: [3,9,20,nul…

Python_编程基础

Python_编程基础 Python编程基础 0、简单介绍 解释型语言:一边编译一边运行,不需要进行编译,运行效率比较低 解释器 JavaScript-浏览器 python.exe php.exe 编译型语言:运行前需要进行编译,运行效率比较高 C .c->.exe 组合:anaconda+pycharm、python+pychar…