可以做产品推广的网站flash网站整站下载

news/2025/10/2 23:00:29/文章来源:
可以做产品推广的网站,flash网站整站下载,河南省商丘网站,残疾人无障碍网站怎么做目录 1.1 关于版本控制 1.1.1 本地版本控制 1.1.2 集中化的版本控制系统 1.1.3 分布式版本控制系统 1.2 Git简介 1.2.1 Git历史 1.3 安装git 1.3.1 环境说明 1.3.2 Yum安装Git 1.3.3 编译安装 1.4 初次运行 Git 前的配置 1.4.1 配置git 1.4.2 获取帮助 1.5 获取 G…目录 1.1 关于版本控制 1.1.1 本地版本控制 1.1.2 集中化的版本控制系统 1.1.3 分布式版本控制系统 1.2 Git简介 1.2.1 Git历史 1.3 安装git 1.3.1 环境说明 1.3.2 Yum安装Git 1.3.3 编译安装 1.4 初次运行 Git 前的配置 1.4.1 配置git 1.4.2 获取帮助 1.5 获取 Git 仓库初始化仓库 1.5.1 创建裸库 1.5.2 创建本地库 1.6 Git命令常规操作 1.6.1 创建文件 1.6.2 添加新文件 1.6.3 删除git内的文件 1.6.4 重命名暂存区数据 1.6.5 查看历史记录 1.6.6 还原历史数据 1.6.7 还原未来数据 1.6.8 标签使用 1.6.9 对比数据 1.7 分支结构 1.7.1 分支切换 1.7.2 合并失败解决 1.7.3 删除分支 1.9 gitlab的使用 1.9.1 安装配置gitlab 1.9.2 使用浏览器访问进行web界面操作 1.9.3 gitlab 命令行修改密码 1.9.4 gitlab服务管理 1.9.5 公司的开发代码提交处理流程 1.9.6 Gitlab 备份与恢复 1、查看系统版本和软件版本 2、数据备份 3、测试数据恢复 (1) 安装部署 gitlab server (2) 恢复 gitlab 1.9.7 邮箱配置 1.1 关于版本控制 开始之前先看一个没有版本控制的例子 1.1.1 本地版本控制 本地版本控制系统许多人习惯用复制整个项目目录的方式来保存不同的版本或许还会改名加上备份时间以示区别。这么做唯一的 好处就是简单但是特别容易犯错。有时候会混淆所在的工作目录一不小心会写错文件或者覆盖意想外的文件。 1.1.2 集中化的版本控制系统 如何让在不同系统上的开发者协同工作于是集中化的版本控制系统Centralized Version Control Systems简称 CVCS应运而生。这类系统诸如 CVS、Subversion 以及Perforce 等都有一个单一的集中管理的服务器保存所有文件的修订版本而协同工作的人们都通过客户端连到这台服务器取出最新的文件或者提交更新。多年以来这已成为版本控制系统的标准做法。 1.1.3 分布式版本控制系统 在这类系统中像Git、Mercurial、Bazaar 以及 Darcs 等客户端并不只提取最新版本的文件快照而是把代码仓库完整地镜像下来。这么一来任何一处协同工作用的服务器发生故障事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的克隆操作实际上都是一次对代码仓库的完整备份。 1.2 Git简介 官网Git git是一个分布式版本控制软件最初由林纳斯·托瓦兹Linus Torvalds创作于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。 Git 官方中文手册 Git - Book 1.2.1 Git历史 自2002年开始林纳斯·托瓦兹决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护代码。因为BitKeeper为专有软件这个决定在社区中长期遭受质疑。在Linux社区中特别是理查德·斯托曼与自由软件基金会的成员主张应该使用开放源代码的软件来作为Linux核心的版本控制系统。林纳斯·托瓦兹曾考虑过采用现成软件作为版本控制系统例如Monotone但这些软件都存在一些问题特别是性能不佳。现成的方案如CVS的架构受到林纳斯·托瓦兹的批评。 2005年安德鲁·垂鸠写了一个简单程序可以连接BitKeeper的存储库BitKeeper著作权拥有者拉里·麦沃伊认为安德鲁·垂鸠对BitKeeper内部使用的协议进行逆向工程决定收回无偿使用BitKeeper的授权。Linux内核开发团队与BitMover公司进行蹉商但无法解决他们之间的歧见。林纳斯·托瓦兹决定自行开发版本控制系统替代BitKeeper以十天的时间编写出第一个git版本 1.3 安装git 1.3.1 环境说明 [rootgit ~]# rpm -qa centos-releasecentos-release-7-4.1708.el7.centos.x86_64[rootgit ~]# uname -aLinux gitlab 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux[rootgit ~]# getenforce Disabled[rootgit ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1) 本文使用的linux系统均为该系统 本文使用的windows系统为 Microsoft Windows [版本 10.0.15063] 1.3.2 Yum安装Git centos 自带git [rootgit ~]# rpm -qa gitgit-1.8.3.1-11.el7.x86_64 安装方法 [rootgit ~]# yum install git -y 1.3.3 编译安装 编译安装可以安装较新版本的git Git下载地址 Releases · git/git · GitHub # 安装依赖关系[rootgit ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel autoconf gcc perl-ExtUtils-MakeMaker# 编译安装 [rootgit ~]# tar -zxf git-2.0.0.tar.gz[rootgit ~]# cd git-2.0.0[rootgit ~]# ./configure --prefix/usr/local/git # 没有文件可以略过[rootgit ~]# make  [rootgit ~]# make install   1.4 初次运行 Git 前的配置 1.4.1 配置git 命令集 git config --global user.name username #配置git使用用户git config --global user.email emailmail.com #配置git使用邮箱git config --global color.ui true #语法高亮git config --list # 查看全局配置 配置过程 [rootgitlab ~]# git config --global user.name newrain #配置git使用用户[rootgitlab ~]# git config --global user.email newrainaliyun.com #配置git使用邮箱[rootgitlab ~]# git config --global color.ui true #语法高亮[rootgitlab ~]# git config --list # 查看全局配置user.namenewrainuser.mailnewrainaliyun.comcolor.uitrue 生成的配置文件 [rootgitlab ~]# cd[rootgitlab ~]# cat .gitconfig [user]name newrainemail newrainaliyun.com[color]ui true 1.4.2 获取帮助 使用Git时需要获取帮助有三种方法可以找到Git命令的使用手册 git help verbgit verb --helpman git-verb 例如要想获得配置命令的手册执行 git help config 1.5 获取 Git 仓库初始化仓库 1.5.1 创建裸库 [rootgitlab ~]# useradd git[rootgitlab ~]# passwd git[rootgitlab ~]# mkdir /git-root/[rootgitlab ~]# cd /git-root/[rootgitlab git-root]# git init --bare shell.gitInitialized empty Git repository in /git-root/shell.git/[rootgitlab git-root]# chown -R git:git shell.git 1.5.2 创建本地库 [rootgitlab opt]# ssh-keygen[rootgitlab opt]# ssh-copy-id git192.168.249.156[rootgitlab opt]# git clone git192.168.249.156:/git-root/shell.git[rootgitlab opt]# lsrh shell[rootgitlab opt]# cd shell/[rootgitlab shell]# vim test1.sh[rootgitlab shell]# git add test1.sh[rootgitlab shell]# git commit -m first commit[master (root-commit) 33c5fbf] first commit1 file changed, 2 insertions()create mode 100644 test1.sh[rootgitlab shell]# git push origin masterCounting objects: 3, done.Writing objects: 100% (3/3), 230 bytes | 0 bytes/s, done.Total 3 (delta 0), reused 0 (delta 0)To git192.168.1.102:/git-root/shell.git* [new branch]     master - master[rootgitlab shell]# [rootgit objects]# tree.├── 5d│   └── 0921ada98b7d356699974ca580a3a54dd95590├── 70│   └── 8232789ba22b76030c944bea934bfc23da9c3d├── a0│   ├── 8d7672007b588ed57414127b845e410eed3af0│   └── d08fd1a09409e5bba8cc8d079b47ec92e4d4b1├── a1│   └── 06dd26e56429e9bc2d624f748b88ce3462dec8├── bd│   └── 133c756c8cd6f3c17e49afdb4999a5bbc02c0e├── info└── pack​ #显示文件内容[rootgit objects]# git cat-file -p 5d0921adajunjiezhenshuai # 显示文件类型[rootgit objects]# git cat-file -t 5d0921adablob # 显示文件大小[rootgit objects]# git cat-file -s 5d0921ada16 1.6 Git命令常规操作 常用命令说明 命令命令说明#add添加文件内容至索引bisect通过二分查找定位引入 bug 的变更#branch列出、创建或删除分支#checkout检出一个分支或路径到工作区#clone克隆一个版本库到一个新目录#commit记录变更到版本库#diff显示提交之间、提交和工作区之间等的差异fetch从另外一个版本库下载对象和引用grep输出和模式匹配的行#init创建一个空的#log显示提交日志#merge合并两个或更多开发历史#mv移动或重命名一个文件、目录或符号链接#pull获取并合并另外的版本库或一个本地分支#push更新远程引用和相关的对象rebase本地提交转移至更新后的上游分支中#reset重置当前HEAD到指定状态#rm从工作区和索引中删除文件show显示各种类型的对象#status显示工作区状态#tag创建、列出、删除或校验一个GPG签名的 tag 对象 常用操作示意图 文件的状态变化周期 1.6.1 创建文件 [rootgitlab git_data]# touch README[rootgitlab git_data]# git status# 位于分支 master## 初始提交## 未跟踪的文件:#   使用 git add file... 以包含要提交的内容##   README提交为空但是存在尚未跟踪的文件使用 git add 建立跟踪---# On branch master## Initial commit## Untracked files:#   (use git add file... to include in what will be committed)##       READMEnothing added to commit but untracked files present (use git add to track) 添加文件跟踪 [rootgitlab git_data]# git add ./*[rootgitlab git_data]# git status# 位于分支 master## 初始提交## 要提交的变更#   使用 git rm --cached file... 撤出暂存区##   新文件   README#---# On branch master## Initial commit## Changes to be committed:#   (use git rm --cached file... to unstage)##       new file:   README#​ 文件会添加到.git的隐藏目录 [rootgitlab git_data]# tree .git/.git/├── branches├── 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├── objects│   ├── e6│   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391│   ├── info│   └── pack└── refs├── heads└── tags 由工作区提交到本地仓库 [rootgitlab git_data]# git commit -m first commit  [master根提交 bb963eb] first commit1 file changed, 0 insertions(), 0 deletions(-)create mode 100644 README 查看git的状态 [rootgitlab git_data]# git status# 位于分支 master无文件要提交干净的工作区​# On branch masternothing to commit, working directory clean 提交后的git目录状态 [rootgitlab git_data]# 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│           └── master├── objects│   ├── 54│   │   └── 3b9bebdc6bd5c4b22136034a95dd097a57d3dd│   ├── bb│   │   └── 963eb32ad93a72d9ce93e4bb55105087f1227d│   ├── e6│   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391│   ├── info│   └── pack└── refs├── heads│   └── master└── tags 1.6.2 添加新文件 git add * 添加到暂存区域git commit 提交git仓库 -m 后面接上注释信息内容关于本次提交的说明方便自己或他人查看 修改或删除原有文件 常规方法 git add *git commit 简便方法 git commit -a -m 注释信息 -a 表示直接提交 Tell the command to automatically stage files that have been modified and deleted, but new files you have not told Git about arenot affected. 1.6.3 删除git内的文件 命令说明 • 没有添加到暂存区的数据直接rm删除即可。 • 已经添加到暂存区数据 git rm --cached database #→将文件从git暂存区域的追踪列表移除(并不会删除当前工作目录内的数据文件) git rm -f database #→将文件数据从git暂存区和工作目录一起删除 命令实践 # 创建新文件[rootgitlab git_data]# touch 123[rootgitlab git_data]# git status# 位于分支 master# 未跟踪的文件:#   使用 git add file... 以包含要提交的内容##   123提交为空但是存在尚未跟踪的文件使用 git add 建立跟踪---# On branch master# Untracked files:#   (use git add file... to include in what will be committed)##       123nothing added to commit but untracked files present (use git add to track) # 将文件添加到暂存区域 [rootgitlab git_data]# git add 123[rootgitlab git_data]# git status# 位于分支 master# 要提交的变更#   使用 git reset HEAD file... 撤出暂存区##   新文件   123---# On branch master# Changes to be committed:#   (use git reset HEAD file... to unstage)##       new file:   123 # 删除文件 [rootgitlab git_data]# rm 123 -f[rootgitlab git_data]# lsREADME[rootgitlab git_data]# git status# 位于分支 master# 要提交的变更#   使用 git reset HEAD file... 撤出暂存区##   新文件   123## 尚未暂存以备提交的变更#   使用 git add/rm file... 更新要提交的内容#   使用 git checkout -- file... 丢弃工作区的改动##   删除     123# ---# On branch master# Changes to be committed:#   (use git reset HEAD file... to unstage)##       new file:   123## 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:   123[rootgitlab git_data]# git reset HEAD ./* [rootgitlab git_data]# git status# 位于分支 master无文件要提交干净的工作区---# On branch masternothing to commit, working directory clean 1.6.4 重命名暂存区数据 • 没有添加到暂存区的数据直接mv/rename改名即可。 • 已经添加到暂存区数据  git mv README NOTICE  [rootgitlab git_data]# git mv README notice[rootgitlab git_data]# git status# On branch master# Changes to be committed:#   (use git reset HEAD file... to unstage)##       renamed:   README - notice# 1.6.5 查看历史记录 • git log #→查看提交历史记录 • git log -2 #→查看最近几条记录 • git log -p -1 #→-p显示每次提交的内容差异,例如仅查看最近一次差异 • git log --stat -2 #→--stat简要显示数据增改行数这样能够看到提交中修改过的内容对文件添加或移动的行数并在最后列出所有增减行的概要信息 • git log --prettyoneline #→--pretty根据不同的格式展示提交的历史信息 • git log --prettyfuller -2 #→以更详细的模式输出提交的历史记录 • git log --prettyfomat:%h %cn #→查看当前所有提交记录的简短SHA-1哈希字串与提交着的姓名。 使用format参数来指定具体的输出格式 格式说明%s提交说明。%cd提交日期。%an作者的名字。%cn提交者的姓名。%ce提交者的电子邮件。%H提交对象的完整SHA-1哈希字串。%h提交对象的简短SHA-1哈希字串。%T树对象的完整SHA-1哈希字串。%t树对象的简短SHA-1哈希字串。%P父对象的完整SHA-1哈希字串。%p父对象的简短SHA-1哈希字串。%ad作者的修订时间。 命令实践 [rootgitlab git_data]# git logcommit f5b79552635a7dc60afc35c99c1170366d8c5f6bAuthor: newrain newrainaliyun.comDate:   Sat May 11 21:29:21 2019 -0700​456​commit e9ed8b38a0052cdcd85ecee833ea8198b077f881Author: newrain rootvmdesk.localdomainDate:   Sat May 11 21:21:12 2019 -0700​commit 123​commit 9d394114177b8da9e452d001ec610e9c45ceede3Author: newrain rootvmdesk.localdomainDate:   Sat May 11 20:19:23 2019 -0700​first commit 1.6.6 还原历史数据 Git服务程序中有一个叫做HEAD的版本指针当用户申请还原数据时其实就是将HEAD指针指向到某个特定的提交版本但是因为Git是分布式版本控制系统为了避免历史记录冲突故使用了SHA-1计算出十六进制的哈希字串来区分每个提交版本另外默认的HEAD版本指针会指向到最近的一次提交版本记录而上一个提交版本会叫HEAD^上上一个版本则会叫做HEAD^^当然一般会用HEAD~5来表示往上数第五个提交版本。 git reset --hard hash git reset --hard HEAD^ #→还原历史提交版本上一次 git reset --hard 3de15d4 #→找到历史还原点的SHA-1值后就可以还原(值不写全,系统 会自动匹配) 测试命令 [rootgitlab git_data]# git logcommit f5b79552635a7dc60afc35c99c1170366d8c5f6bAuthor: newrain newrainaliyun.comDate:   Sat May 11 21:29:21 2019 -0700​456​commit e9ed8b38a0052cdcd85ecee833ea8198b077f881Author: newrain rootvmdesk.localdomainDate:   Sat May 11 21:21:12 2019 -0700​commit 123​commit 9d394114177b8da9e452d001ec610e9c45ceede3Author: newrain rootvmdesk.localdomainDate:   Sat May 11 20:19:23 2019 -0700​first commit ​ 还原数据 [rootgitlab git_data]# git reset --hard e9ed8b38aHEAD is now at e9ed8b3 commit 123HEAD 现在位于 e9ed8b3 commit 123# 查看数据[rootgitlab git_data]# ls123 README 1.6.7 还原未来数据 什么是未来数据就是你还原到历史数据了但是你后悔了想撤销更改但是git log已经找不到这个版本了。 git reflog #→查看未来历史更新点 测试命令 [rootgitlab git_data]# git refloge9ed8b3 HEAD{0}: reset: moving to e9ed8b38af5b7955 HEAD{1}: commit: 456e9ed8b3 HEAD{2}: commit: commit 1239d39411 HEAD{3}: commit (initial): first commit[rootgitlab git_data]#   1.6.8 标签使用 前面回滚使用的是一串字符串又长又难记。 git tag v1.0 #→当前提交内容打一个标签(方便快速回滚)每次提交都可以打个tag。 git tag #→查看当前所有的标签 git show v1.0 #→查看当前1.0版本的详细信息 git tag v1.2 -m version 1.2 release is test #→创建带有说明的标签,-a指定标签名字-m指定说明文字 git tag -d v1.0 #→我们为同一个提交版本设置了两次标签,删除之前的v1.0 测试命令 [rootgitlab git_data]# git reset --hard e9ed8b38aHEAD is now at e9ed8b3 commit 123[rootgitlab git_data]# git reset --hard V1.0HEAD is now at e9ed8b3 add test dir​[rootgitlab git_data]# git tag v20171129[rootgitlab git_data]# git tag v20171129 1.6.9 对比数据 git diff可以对比当前文件与仓库已保存文件的区别知道了对README作了什么修改 后再把它提交到仓库就放⼼多了。  git diff READMEgit diff --name-only HEAD HEAD^git diff --name-only head_id head_id2 1.7 分支结构 在实际的项目开发中尽量保证master分支稳定仅用于发布新版本平时不要随便直接修改里面的数据文件。 那在哪干活呢干活都在dev分支上。每个人从dev分支创建自己个人分支开发完合并到dev分支最后dev分支合并到master分支。所以团队的合作分支看起来会像下图那样。 1.7.1 分支切换 [rootgitlab git_data]# git branch newrain[rootgitlab git_data]# git branch * masternewrain[rootgitlab git_data]# git checkout newrain 切换到分支 newrainSwitched to branch newrain[rootgitlab git_data]# git branch master* newrain 在newrain 分支进行修改 [rootgitlab git_data]# cat README This is git_data readme[rootgitlab git_data]# echo 1901 README [rootgitlab git_data]# git add .[rootgitlab git_data]# git commit -m 1901[newrain 4310e7e] 19011 file changed, 1 insertion()[rootgitlab git_data]# git status# On branch newrainnothing to commit, working directory clean---# 位于分支 newrain无文件要提交干净的工作区 回到master分支 [rootgitlab git_data]# git checkout masterSwitched to branch master切换到分支 master[rootgitlab git_data]# cat README This is git_data readme[rootgitlab git_data]# git log -1commit f5b79552635a7dc60afc35c99c1170366d8c5f6bAuthor: newrain newrainaliyun.comDate:   Sat May 11 21:29:21 2019 -0700​456 合并代码 [rootgitlab git_data]# git merge newrainUpdating f5b7955..4310e7eFast-forwardREADME | 1 1 file changed, 1 insertion()[rootgitlab git_data]# git status# On branch masternothing to commit, working directory clean# 位于分支 master无文件要提交干净的工作区[rootgitlab git_data]# cat README This is git_data readme1901 1.7.2 合并失败解决 模拟冲突在文件的同一行做不同修改 在master 分支进行修改 [rootgitlab git_data]# cat README This is git_data readme1901[rootgitlab git_data]# echo 1901-git README [rootgitlab git_data]# git commit -m newrain 1901-git[master 4e6c548] newrain 1901-git1 file changed, 1 insertion(), 2 deletions(-) 切换到newrain分支 [rootgitlab git_data]# git checkout newrainSwitched to branch newrain[rootgitlab git_data]# cat README This is git_data readme1901[rootgitlab git_data]# echo newrain README [rootgitlab git_data]# git commit -m 1901-git-check# On branch newrain# 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:   README#no changes added to commit (use git add and/or git commit -a) ​ 回到master分区进行合并出现冲突 [rootgitlab git_data]# git checkout master 切换到分支 master[rootgitlab git_data]# git merge linux自动合并 README冲突内容合并冲突于 README自动合并失败修正冲突然后提交修正的结果。 解决冲突 [rootgitlab git_data]# vim README This is git_data readme1901newrainmeger test timeger test master # 手工解决冲突 [rootgitlab git_data]# git commit -a -m merge-ti-test[master 2594b2380] merge-ti-test 1.7.3 删除分支 因为之前已经合并了newrain分支所以现在看到它在列表中。 在这个列表中分支名字前没有 * 号的分支通常可以使用 git branch -d 删除掉你已经将它们的工作整合到了另一个分支所以并不会失去任何东西。 查看所有包含未合并工作的分支可以运行 git branch --no-merged** git branch --no-mergedtesting 这里显示了其他分支。 因为它包含了还未合并的工作尝试使用 git branch -d 命令删除它时会失败 git branch -d testingerror: The branch testing is not fully merged.If you are sure you want to delete it, run git branch -D testing. 如果真的想要删除分支并丢掉那些工作如同帮助信息里所指出的可以使用 -D 选项强制删除它。 1.9 gitlab的使用 前面我们已经知道Git人人都是中心那他们怎么交互数据呢 • 使用GitHub或者码云等公共代码仓库 • 使用GitLab私有仓库 1.9.1 安装配置gitlab 安装 # 安装依赖并启动ssh、防火墙开启相应端口、postfix[rootgitlab ~]# yum install -y curl policycoreutils-python openssh-server perl # 安装完成后会直接启动[rootgitlab ~]# yum install gitlab-jh-16.0.3-jh.0.el7.x86_64.rpm 初始化 # 以下两种方法都可以配置访问地址第一种需要在yum安装前配置 [rootgitlab ~]# export EXTERNAL_URLhttp://192.168.249.156或[rootgitlab ~]# vim /etc/gitlab/gitlab.rbexternal_url http://192.168.249.156[rootgitlab ~]# gitlab-ctl reconfigure 状态 [rootgitlab ~]# gitlab-ctl statusrun: gitaly: (pid 4491) 48s; run: log: (pid 4087) 279srun: gitlab-monitor: (pid 4539) 44s; run: log: (pid 4251) 207srun: gitlab-workhorse: (pid 4501) 47s; run: log: (pid 4099) 273srun: logrotate: (pid 4125) 265s; run: log: (pid 4124) 265srun: nginx: (pid 4112) 271s; run: log: (pid 4111) 271srun: node-exporter: (pid 4175) 243s; run: log: (pid 4174) 243srun: postgres-exporter: (pid 4528) 45s; run: log: (pid 4223) 219srun: postgresql: (pid 3933) 343s; run: log: (pid 3932) 343srun: prometheus: (pid 4514) 46s; run: log: (pid 4156) 259srun: redis: (pid 3876) 355s; run: log: (pid 3875) 355srun: redis-exporter: (pid 4186) 237s; run: log: (pid 4185) 237srun: sidekiq: (pid 4078) 281s; run: log: (pid 4077) 281srun: unicorn: (pid 4047) 287s; run: log: (pid 4046) 287s 检查端口 [rootgitlab ~]# netstat -lntup|grep 80tcp       0     0 127.0.0.1:8080     0.0.0.0:*   LISTEN     4073/unicorn master tcp       0     0 0.0.0.0:80     0.0.0.0:*         LISTEN     4112/nginx: master  tcp       0     0 0.0.0.0:8060       0.0.0.0:*     LISTEN     4112/nginx: master 1.9.2 使用浏览器访问进行web界面操作 登陆 Gitlab 如果需要手工修改nginx的port 可以在gitlab.rb中设置 nginx[listen_port] 8000 然后再次 gitlab-ctl reconfigure即可 登录 gitlab 如下所示(首次登陆设置 root 密码) 密码存放在 /etc/gitlab/initial_root_password 文件中该文件会在24小时后删除 创建项目组 group 组名为plat-sp ,如下所示: 去掉用户的自动注册功能安全 admin are - settings - Sign-up Restrictions 去掉钩钩然后拉到最下面保存重新登录 在服务器上创建ssh密钥 使用ssh-ketgen 命令 [rootgitlab ~]# ssh-keygen Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Created directory /root/.ssh.Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:n/V2kCiwwm2UfBsnQLm17eXUCBiBByyPbefmz5oQvfU rootgitlabThe keys randomart image is:---[RSA 2048]----|       oo     ||     ..o .   ||       o.. o ||     ..oo....||     o.So.o ||       o oo*.o.. ||       .o   E .||         ..o . . ||         ooo   |----[SHA256]-----[rootgitlab .ssh]# cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSVdBypha/ALMmvIiZGXxYGz7FJ5TChYWo7QGBJJ6JVinp9yH851fwxln5TWGBrtEousoVHXTTJfFRy8LVHo7OfaksYt5TPxEjf5XX53Z3ZX70PYH3DQFmgzl0QpWw1PYIjrD7kBeLhUgR/ZePSHzPvbRCb6gOlkdx46vX4Olr7YbAO5lzAarhaZcE2Q702kPXGeuZbR7KcwVhtoiueyHwyj94bccMfKq7qSskXGbpWuCwcaKQ6uqGap1rP5Viqqv0xeO7Vq0dIZ/YnPL2vPDUvNa36nHosiZGkn4thpPh63KjXaFIfKOuPemLzvDZY0A88P8gwmAYiPoxp rootgitlab 将密钥添加到web界面的用户中 1.9.3 gitlab 命令行修改密码 gitlab-rails console -e productionirb(main):001:0 user User.where(id: 1).first     # id为1的是超级管理员irb(main):002:0 user.password yourpassword     # 密码必须至少8个字符irb(main):003:0 user.save!                         # 如没有问题 返回trueexit # 退出 1.9.4 gitlab服务管理 gitlab-ctl start                       # 启动所有 gitlab 组件gitlab-ctl stop                         # 停止所有 gitlab 组件gitlab-ctl restart                     # 重启所有 gitlab 组件gitlab-ctl status                       # 查看服务状态gitlab-ctl reconfigure                 # 启动服务vim /etc/gitlab/gitlab.rb               # 修改默认的配置文件gitlab-ctl tail                         # 查看日志 1.9.5 公司的开发代码提交处理流程 PM项目主管/项目经理在gitlab创建任务分配给开发人员 开发人员领取任务后在本地使用git clone拉取代码库 开发人员创建开发分支git checkout -b dev并进行开发 开发人员完成之后提交到本地仓库git commit 开发人员在gitlab界面上申请分支合并请求Merge request PM在gitlab上查看提交和代码修改情况确认无误后确认将开发人员的分支合并到主分支master 开发人员在gitlab上Mark done确认开发完成并关闭issue。这一步在提交合并请求时可以通过描述中填写close #1等字样可以直接关闭issue 创建项目管理用户Tompson如下所示 同样的方法再创建Eric 、Hellen 用户。用户添加完毕后gitlab会给用户发一封修改密码的邮件各用户需要登录自己的邮箱并点击相关的链接设置新密码。 将用户添加到组中指定Tompson为本组的owner 同样的方法将用户Eric、Hellen也添加到组中并指定他们为Developer 使用 Tompson 用户的身份与密码登录到 gitlab 界面中并创建项目 Project 如下所示 指定项目的存储路径和项目名称如下所示 为项目创建Dev分支如下所示 在 client 上添加Tompson的用户 [rootvm2 ~]# useradd Tompson[rootvm2 ~]# useradd Eric[rootvm2 ~]# useradd Hellen[rootvm2 ~]# su - Tompson[Tompsonvm2 ~]$ ssh-keygen -C Tompsondomain.cnGenerating public/private rsa key pair.Enter file in which to save the key (/home/Tompson/.ssh/id_rsa): Created directory /home/Tompson/.ssh.Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/Tompson/.ssh/id_rsa.Your public key has been saved in /home/Tompson/.ssh/id_rsa.pub.The key fingerprint is:SHA256:SAoAH2zSxqEJqVgKKrxM5XMi6tKe61JMRdwMhwBNIrE Tompsondomain.cnThe keys randomart image is:---[RSA 2048]----|XXo.         ||*BOo.o         ||E*. .         ||*. .         ||oo . S       ||.oo             ||.o               ||o...             ||..             |----[SHA256]-----[Tompsonvm2 ~]$ cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ8cRGHejsZzlmK36W5MUXMLOGdTwFI9Jj44mGuabZCrlYW4GDpL6ppezNSur0wHtnKonYJzm8ntqS0S0UHyaPPQPl9Mrs/6Z4VrXZ/4RlqHdWeSrmOwCBQld0l8HvrmP4TyGHrOreO8uZqimd/ZOiMqnYRZzENX11Pti/Px5g1MtJcoCi9uLtF42QYrt1X/fzAyPU9C5/5ZUq4Jln3EF20bzcA52oAzZIl0jrhI0TeTeW6zYqKxdHGshLqG7NeakPOe4Ma5BQjcMZ2dQ2kbGuozXmLT8RDcj9YRKceQsUdTI71lJpwrWKGn8Vhra0EaK3hgoTuvMYaGfOF Tompsondomain.cn 将Tompson的公钥复制到gitlab中 使用Tompson用户的身份与密码登录到gitlab界面中然后在ssh-key中添加 相关的key 如下所示 为Tompson用户配置git 如下所示 [Tompsonvm2 ~]$ git config --global user.email Tompsondomain.cn[Tompsonvm2 ~]$ git config --global user.name Tompson​[Tompsonvm2 ~]$ git clone git192.168.60.119:plat-sp/chathall.gitCloning into chathall...The authenticity of host 192.168.60.119 (192.168.60.119) cant be established.ECDSA key fingerprint is SHA256:CDxAQmj6gUkIxB6XUofbZ853GuPM5LS2QO4a5dD7jRo.ECDSA key fingerprint is MD5:4e:20:72:a7:46:c6:d7:5d:bb:9d:ce:c3:f3:da:43:f9.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 192.168.60.119 (ECDSA) to the list of known hosts.remote: Counting objects: 3, done.remote: Total 3 (delta 0), reused 0 (delta 0)Receiving objects: 100% (3/3), done.[Tompsonvm2 ~]$ [Tompsonvm2 ~]$ cd chathall/[Tompsonvm2 chathall]$ lsReadme.txt[Tompsonvm2 chathall]$ 创建一下新文件添加内容并提交到master分支: [Tompsonvm2 chathall]$ vim test.sh[Tompsonvm2 chathall]$ cat test.sh #!/bin/bashecho gitlab test[Tompsonvm2 chathall]$ git add . [Tompsonvm2 chathall]$ git commit -m 201805101649[master 80edf6b] 2018051016491 file changed, 2 insertions()create mode 100644 test.sh[Tompsonvm2 chathall]$ [Tompsonvm2 chathall]$ git push -u origin master Counting objects: 4, done.Compressing objects: 100% (2/2), done.Writing objects: 100% (3/3), 305 bytes | 0 bytes/s, done.Total 3 (delta 0), reused 0 (delta 0)To git192.168.60.119:plat-sp/chathall.git4611654..80edf6b master - masterBranch master set up to track remote branch master from origin.[Tompsonvm2 chathall]$ 使用Eric用户登录并clone 项目如下所示 [rootvm2 ~]# su - Eric[Ericvm2 ~]$ ssh-keygen -C Ericdomain.cnGenerating public/private rsa key pair.Enter file in which to save the key (/home/Eric/.ssh/id_rsa): Created directory /home/Eric/.ssh.Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/Eric/.ssh/id_rsa.Your public key has been saved in /home/Eric/.ssh/id_rsa.pub.The key fingerprint is:SHA256:VZaJvjA5SJZEByuRpDBNHCECCZ5R8X0DYcNE0f1B6E Ericdomain.cnThe keys randomart image is:---[RSA 2048]----|*O..B*o**ooo. ||*... *o.*oooo . || . ..oo E . .|| o   o ..   . ||   . . S .     ||   . .   .     ||   . .           ||   o           ||   .             |----[SHA256]-----​[Ericvm2 ~]$ cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDxQcn4UjRW/5PT5witeV9S2w8WK5ouawHxEF7s9wuWsT4pqhcu5BN74NG3CPaq1jJZnkVaQsTw60BAd1gOK0FBbKWxmohmE61n9vfpUT5igJ72t2jpXjfKwLIHwIq5yM4yUhkwSsoBuZkxYSEltnj8OvXaOlCDYnXuGBa9xO8f5yVIcOtiwRvvY1PRRzSIcazPVZax9FLK26t1R4NPiY4xWkIJyK2OrKMeiaBBzyMfWzHdmsCWa51oSrYSmz3PDBXpzIBs3OdKxcaJs9Lc5u87YCV5RMUjLrPcA7nPK6crOabLXhz3d5GSYggMTOByQkyKOo7WlYpARCHOt/ Ericdomain.cn[Ericvm2 ~]$ 同样需要使用Eric用户登录gitlab web 界面并添加相应的ssh-key。然后设置git 并clone项目 [Ericvm2 ~]$ git config --global user.email Ericdomain.cn[Ericvm2 ~]$ git config --global user.name Eric[Ericvm2 ~]$ git clone git192.168.60.119:plat-sp/chathall.gitCloning into chathall...The authenticity of host 192.168.60.119 (192.168.60.119) cant be established.ECDSA key fingerprint is SHA256:CDxAQmj6gUkIxB6XUofbZ853GuPM5LS2QO4a5dD7jRo.ECDSA key fingerprint is MD5:4e:20:72:a7:46:c6:d7:5d:bb:9d:ce:c3:f3:da:43:f9.Are you sure you want to continue connecting (yes/no)? yesremote: Counting objects: 6, done.remote: Compressing objects: 100% (3/3), done.remote: Total 6 (delta 0), reused 0 (delta 0)Receiving objects: 100% (6/6), done.[Ericvm2 ~]$ 切换到dev分支修改文件内容并将新code提交到dev分支(Developer角色默认并没有提交master的权限) [Ericvm2 chathall]$ git checkout dev Branch dev set up to track remote branch dev from origin.Switched to a new branch dev[Ericvm2 chathall]$ lsReadme.txt test.sh[Ericvm2 chathall]$ vim test.sh [Ericvm2 chathall]$ cat test.sh #!/bin/bashecho gitlab testecho brahch test[Ericvm2 chathall]$ git add . [Ericvm2 chathall]$ git commit -m 201805101658[dev 6687039] 2018051016581 file changed, 1 insertion()[Ericvm2 chathall]$ git push -u origin dev Counting objects: 5, done.Compressing objects: 100% (3/3), done.Writing objects: 100% (3/3), 306 bytes | 0 bytes/s, done.Total 3 (delta 0), reused 0 (delta 0)remote: remote: To create a merge request for dev, visit:remote:   http://192.168.60.119/plat-sp/chathall/merge_requests/new?merge_request%5Bsource_branch%5Ddevremote: To git192.168.60.119:plat-sp/chathall.git80edf6b..6687039 dev - devBranch dev set up to track remote branch dev from origin.[Ericvm2 chathall]$[Ericvm2 chathall]$ git checkout master Switched to branch master[Ericvm2 chathall]$ git branch dev* master[Ericvm2 chathall]$ 使用Eric 用户登录gitlab web在界面中 创建一个合并请求 提交合并请求 然后使用Tompson用户登录 gitlab web 找到“合并请求” 然后将dev分支合并到master分支如下所示 1.9.6 Gitlab 备份与恢复 1、查看系统版本和软件版本 [rootgitlab gitlab]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) ​[rootgitlab gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION8.15.4 2、数据备份 打开/etc/gitlab/gitlab.rb配置文件查看一个和备份相关的配置项 gitlab_rails[backup_path] /data/gitlab/backups 该项定义了默认备份出文件的路径可以通过修改该配置并执行 gitlab-ctl reconfigure 或者 gitlab-ctl restart 重启服务生效。 执行备份命令进行备份 /opt/gitlab/bin/gitlab-rake gitlab:backup:create 也可以添加到 crontab 中定时执行 0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create 可以到/data/gitlab/backups找到备份包解压查看会发现备份的还是比较全面的数据库、repositories、build、upload等分类还是比较清晰的。 设置备份保留时常防止每天执行备份肯定有目录被爆满的风险打开/etc/gitlab/gitlab.rb配置文件找到如下配置 gitlab_rails[backup_keep_time] 604800 设置备份保留7天7360024604800秒为单位如果想增大或减小可以直接在该处配置并通过gitlab-ctl restart 重启服务生效。 备份完成会在备份目录中生成一个当天日期的tar包。 3、测试数据恢复 (1) 安装部署 gitlab server 具体步骤参见上面gitlab server 搭建过程 (2) 恢复 gitlab 打开/etc/gitlab/gitlab.rb配置文件查看一个和备份相关的配置项 gitlab_rails[backup_path] /data/gitlab/backups 修改该配置定义了默认备份出文件的路径并执行 gitlab-ctl reconfigure 或者 gitlab-ctl restart 重启服务生效。 恢复前需要先停掉数据连接服务 [rootgitlab ]# gitlab-ctl stop unicorn[rootgitlab ]# gitlab-ctl stop sidekiq 如果是台新搭建的主机不需要操作理论上不停这两个服务也可以。停这两个服务是为了保证数据一致性。将老服务器/data/gitlab/backups目录下的备份文件拷贝到新服务器上的/data/gitlab/backups [rootgitlab gitlab]# rsync -avz 1530773117_2019_03_05_gitlab_backup.tar 192.168.95.135:/data/gitlab/backups/ 注意权限600权限是无权恢复的。 实验环境可改成了777生产环境建议修改属主属组 [rootgitlab backups]# pwd/data/gitlab/backups[rootgitlab backups]# chmod 777 1530773117_2019_03_05_gitlab_backup.tar [rootgitlab backups]# lltotal 17328900-rwxrwxrwx 1 git git 17744793600 Jul 5 14:47 1530773117_2018_07_05_gitlab_backup.tar 执行下面的命令进行恢复后面再输入两次yes就完成恢复了。 [rootgitlab backups]# gitlab-rake gitlab:backup:restore BACKUP1530773117_2018_07_05_gitlab_backup.tar 恢复完成后启动刚刚的两个服务或者重启所有服务再打开浏览器进行访问发现数据和之前的一致 [rootgitlab backups]# gitlab-ctl start unicorn[rootgitlab backups]# gitlab-ctl start sidekiq或[rootgitlab backups]# gitlab-ctl restart 注意通过备份文件恢复gitlab必须保证两台主机的gitlab版本一致否则会提示版本不匹配 1.9.7 邮箱配置 [rootgitlab ]# vim /etc/gitlab/gitlab.rbgitlab_rails[smtp_enable] truegitlab_rails[smtp_address] smtp.163.comgitlab_rails[smtp_port] 465gitlab_rails[smtp_user_name] newrain_wang163.comgitlab_rails[smtp_password] UWYNCPQOBQFCDLIWgitlab_rails[smtp_domain] smtp.163.comgitlab_rails[smtp_authentication] logingitlab_rails[smtp_enable_starttls_auto] falsegitlab_rails[smtp_tls] truegitlab_rails[smtp_pool] falsegitlab_rails[gitlab_email_from] newrain_wang163.com​[rootgitlab ]# gitlab-ctl reconfigure

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

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

相关文章

DeploySharp开源发布:让C#部署深度学习模型更加简单

DeploySharp:面向C#开发者的跨平台模型部署框架 DeploySharp是一款专为C#开发者设计的深度学习模型部署框架,支持OpenVINO和ONNX Runtime推理引擎,兼容YOLOv5-v12全系列模型以及Anomalib等主流模型。该框架采用模块…

光伏电站建设的国家网站湖南网站托管

java之NIO 1 什么是NIO Java NIO (New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO的三大核心部分:通道(Channel),缓冲区(Buffer), 选择器(Selector),数据总是从…

视频多的网站建设如何建设一个静态网站

什么是柔性数组 什么是柔性数组?柔性数组其实也是动态内存管理部分的内容。这节主要来复习柔性数组的知识点。 当结构体的最后一个成员为数组, 且这个数组的大小未确定时, 我们就称它是柔性数组。 如: struct stu{char name[…

泰康人寿保险官方网站专题学习网站模板

boot读取配置文件1. yml配置文件2. 绑定方式13. 绑定方式23.1 依赖.3.2 boot 中提供的属性装配功能。1. 在某些业务中,需要将类的配置写到配置文件中, 不在代码中写死配置。 2. 所以需要读取配置文件(yaml, properties) 读取到Java Bean中。 3. 本文以oss对象存储配…

别样的国庆作业大战

一天,文科给我(理科)打来电话。他说:“你敢不敢和我举行假期作业量大战?”我豪爽的答应了:“我当然敢!我有 \(10^{12180211} \operatorname{mol}\) 试卷!2025.10.1 在 XXX 中高一年级举行,谁不来谁就是怂货。…

淘宝网站的建设目的是什么意思长沙网站托管seo优化公司

近期在复习Postman的基础知识,在小破站上跟着百里老师系统复习了一遍,也做了一些笔记,希望可以给大家一点点启发。 1、目前市面上的加密的方式 对称式加密:DES,AES,Base64加密算法 非对称加密&#xff1a…

摄影网站设计思想宁波优质网站制作哪家好

linux 常用的帮助命令 1.help -相当于man的简化版 例如:vim –help 2.man: 详细介绍vim的用法 例如:man vim 3.info:偏重介绍文档 例如: info vim

ROS2之服务

ROS2 的服务(Service)概念:服务是一种 请求-响应(request-response)通信机制,由 客户端(Client) 和 服务端(Server) 两部分组成。通信模式:客户端 发送一个请求(Request)。服务端 处理请求,并返回响应(…

北京公司建网站要多少费用江门站官网

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 k &#xff0c;请你返回满足 0 < i < j < n &#xff0c;nums[i] nums[j] 且 (i * j) 能被 k 整除的数对 (i, j) 的 数目 。 示例 1&#xff1a; 输入&#xff1a;nums …

macOS上优雅运行Docker容器

colima 什么是colima colima主页 Colima(Container on Lima)是一个轻量级的容器运行时管理工具,专为macOS(同时也支持Linux)设计,提供了一种简单优雅的方式来运行容器。它基于Lima项目,后者为 macOS提供了类似W…

怎样模仿别人的网站wordpress免插件代码高亮

TCP/IP协议—TCP TCP协议TCP通信特点TCP技术概念TCP定时器 TCP头部报文TCP连接三次握手&#xff08;建立连接&#xff09;四次挥手&#xff08;释放连接&#xff09;连接状态 TCP协议 传输控制协议&#xff08;TCP&#xff0c;Transmission Control Protocol&#xff09;是一种…

使用IOT-Tree Server依据MC协议连接三菱Q系列PLC

使用IOT-Tree Server依据MC协议连接三菱Q系列PLC2025-10-02 22:40 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…

长春网站设计团队html自我介绍网页模板

1. 基本架构 ovs-vsctl: 管理ovsdb-server的配置&#xff0c;提供OVSDB的配置方法&#xff0c;包括创建和删除网桥、端口等&#xff1b; ovs-ofctl: 提供ovs-vswitchd的流表配置方法&#xff1b; ovs-dpctl: 配置OVS内核模块&#xff0c;提供缓存流表的操作方法&#xff1b…

【Linux】【硬件向】从“找文件”到“懂磁盘”:一文搞懂文件、磁盘与文件系统 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

题解:CF1770H Koxia, Mahiru and Winter Festival

牛牛题。 题意:给出两个排列 \(p,q\),要求构造一种路径方案,\((1,i)\rightarrow(n,p_i)\),\((i,1) \rightarrow(q_i, n)\),要求经过次数最大的边经过次数最少。 做法: 首先 \(p_i=i,q_i=i\) 直接就是 \(1\),轻松…

HarmonyOS之LocalStorage - 详解

HarmonyOS之LocalStorage - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&qu…

南华 NHXJ-02 汽车悬架检验台:实用的技术特性与实操应用指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

建设银行网站理财产品安徽房地产网站建设

pack://application:, pack://application:, 是一个在 WPF (Windows Presentation Foundation) 应用程序中用于指定资源位置的 URI (统一资源标识符) 方案的特定格式。这个格式用于访问嵌入在应用程序程序集&#xff08;assemblies&#xff09;中的资源&#xff0c;如图像、XA…

网站建设后如何修改wordpress 投稿 标签

28-实现 strStr()&#xff08;easy&#xff09; 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 思路…

网站重定向淮北公司做网站

一、对插槽的理解 1.定义及作用&#xff1a; 插槽是一种用于在组件中插入内容的特殊语法。它的作用是让父组件可以向子组件传递内容&#xff0c;从而实现组件的灵活性和复用性。 2.分类&#xff1a; 插槽可以分为具名插槽和作用域插槽。 2.1具名插槽&#xff1a; 具名插槽允许父…