尚硅谷2024最新Git企业实战教程 | Git与GitLab的企业实战

news2024/11/20 0:26:49

这篇博客是尚硅谷2024最新Git企业实战教程,全方位学习git与gitlab的完整笔记。
这不仅仅是一套Git的入门教程,更是全方位的极狐GitLab企业任务流开发实战!作为一应俱全的一站式DevOps平台,极狐GitLab的高阶功能全面覆盖,权威出品,重磅力作,是你学习Git与GitLab的不二之选!

Git与GitLab的企业实战

第1章 Git概述

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。

Git易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion(svn)、CVS、Perforce和ClearCase等版本控制工具。

1. 何为版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。

版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
在这里插入图片描述

2. 为什么需要版本控制

个人开发过渡到团队协作。
在这里插入图片描述

3. 版本控制工具

  • 集中式版本控制工具

CVS、SVN(Subversion)、VSS……

集中化的版本控制系统诸如 CVS、SVN等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。

这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。

事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
在这里插入图片描述

  • 分布式版本控制工具

Git、Mercurial、Bazaar、Darcs……

像 Git这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

  1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)

  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
    在这里插入图片描述

4. Git简史

在这里插入图片描述

5 Git工作机制

在这里插入图片描述

6 Git和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。

  • 局域网

GitLab

  • 互联网

GitHub(外网)

Gitee码云(国内网站)

第2章 Git安装

​ 官网地址: https://git-scm.com/或https://github.com/git-for-windows/git/releases

​ 查看GNU协议,可以直接点击下一步。
在这里插入图片描述

选择Git安装位置,要求是非中文并且没有空格的目录,然后下一步。
在这里插入图片描述

Git选项配置,推荐默认设置,然后下一步。
在这里插入图片描述

Git安装目录名,不用修改,直接点击下一步。
在这里插入图片描述

Git的默认编辑器,建议使用默认的Vim编辑器,然后点击下一步。
在这里插入图片描述

默认分支名设置,选择让Git决定,分支名默认为master,下一步。
在这里插入图片描述

修改Git的环境变量,选第一个,不修改环境变量,只在Git Bash里使用Git。
在这里插入图片描述

选择后台客户端连接协议,选默认值OpenSSL,然后下一步。
在这里插入图片描述

配置Git文件的行末换行符,Windows使用CRLF,Linux使用LF,选择第一个自动转换,然后继续下一步。
在这里插入图片描述

选择Git终端类型,选择默认的Git Bash终端,然后继续下一步。
在这里插入图片描述

选择Git pull合并的模式,选择默认,然后下一步。
在这里插入图片描述

选择Git的凭据管理器,选择默认的跨平台的凭据管理器,然后下一步。
在这里插入图片描述

其他配置,选择默认设置,然后下一步。
在这里插入图片描述

实验室功能,技术还不成熟,有已知的bug,不要勾选,然后点击右下角的Install按钮,开始安装Git。
在这里插入图片描述

点击Finsh按钮,Git安装成功!
在这里插入图片描述

右键任意位置,在右键菜单里选择Git Bash Here即可打开Git Bash命令行终端。
在这里插入图片描述

在Git Bash终端里输入git --version查看git版本,如图所示,说明Git安装成功。
在这里插入图片描述

第3章 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 版本号版本穿梭

1 设置用户签名

1.1 基本语法

git config --global user.name 用户名

git config --global user.email 邮箱

1.2 案例实操

全局范围的签名设置:

git config --global user.name yhm
git config --global user.email yaohm7788@163.com
git config --list # 查看全局配置
cat ~/.gitconfig  # cat linux中查看文本的命令  ~ 家 [你当前用户的家]/ .gitconfig

说明:

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

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

2 初始化本地库

2.1 基本语法

git init

2.2 案例实操

在这里插入图片描述

结果查看
在这里插入图片描述

3 查看本地库状态

3.1 基本语法

git status

3.2 案例实操

(1)首次查看(工作区没有文件)

在这里插入图片描述

(2)新增文件

在这里插入图片描述

在这里插入图片描述

(3)再次查看(检测到未追踪文件)

在这里插入图片描述

4 添加暂存区

4.1 将工作区的文件添加到暂存区

(1)基本语法

git add 文件名

(2)案例实操

在这里插入图片描述

4.2 查看状态(检测到暂存区有新文件)

在这里插入图片描述

5 提交本地库

5.1 暂存区文件提交到本地库

(1)基本语法

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

(2)案例实操

在这里插入图片描述

5.2 查看状态(没有文件需要提交)

在这里插入图片描述

6 修改文件(hello.txt)

6.1 查看状态(检测到工作区有文件被修改)

在这里插入图片描述

6.2 将修改的文件再次添加暂存区

在这里插入图片描述

6.3 查看状态(工作区的修改添加到了暂存区)

在这里插入图片描述

6.4 将暂存区文件提交到本地库

在这里插入图片描述

7 历史版本

7.1 查看历史版本

(1)基本语法

git reflog 查看版本信息

git reflog -n 数量

git log 查看版本详细信息

(2)案例实操

在这里插入图片描述

7.2 版本穿梭

(1)基本语法

git reset --hard 版本号

(2)案例实操

–首先查看当前的历史记录,可以看到当前是在48f4e22这个版本
在这里插入图片描述

–切换到之前版本,8ca80d7版本,也就是我们第一次提交的版本
在这里插入图片描述

–切换完毕之后再查看历史记录,当前成功切换到了8ca80d7版本
在这里插入图片描述

–然后查看文件hello.txt,发现文件内容已经变化
在这里插入图片描述

Git切换版本,底层其实是移动的HEAD指针。

第4章 Git客户端便捷操作

1. 安装部署

使用命令行操作git相对而言是非常不方便的,查看内容也不是很直观,所有官方推荐使用Git的GUI 客户端来完成页面化操作。

https://git-scm.com/downloads/guis
在这里插入图片描述

​ 推荐下载使用GitHub Desktop。下载安装之后,选择不登录先进入页面。
在这里插入图片描述

2. 基础操作

2.1 设置个人信息

在这里插入图片描述

2.2 创建新的Git仓库

在这里插入图片描述

2.3 提交不同版本

在这里插入图片描述

新创建文件1.txt,并写入信息。之后可以在GitGui上面进行提交。
在这里插入图片描述

多次提交的版本可以直接在History页面查看区别,不需要再使用reset命令。
在这里插入图片描述

3. 连接GitHub远程仓库

登录自己注册的账号
在这里插入图片描述

点击Publish可以将当前项目创建到GitHub上面。
在这里插入图片描述

之后修改本地文件,就可以先推送到本地git之后再远程同步到GitHub仓库中。

(1)选择对应的分支
在这里插入图片描述

(2)点击推送
在这里插入图片描述

(3)也可以先在GitHub上面创建远程仓库,之后再拉取到本地保持统一。
在这里插入图片描述
在这里插入图片描述

(4)拉取远程仓库到本地
在这里插入图片描述

点击克隆即可,连接完成远程仓库和本地Git之后,在本地修改文件提交Git之后再push推送即可完成同步。
在这里插入图片描述

3. Gitee替代GitHub

GitHub的网站有时候会连接不上,无法登录。可以使用阿里提供的Git远程仓库网站Gitee来代替。
在这里插入图片描述

登录账号之后创建新的仓库
在这里插入图片描述

同步远程Gitee仓库的方式和同步GitHub仓库方法完全一致。
在这里插入图片描述

4. idea兼容使用Git(JAVA代码)

(1)首先在idea中创建一个空的项目
在这里插入图片描述

(2)编写基础的JAVA代码Hello world
在这里插入图片描述

(3)此时会产生IDEA中的特定文件
在这里插入图片描述

(4) 配置Git忽略文件

  • 文件名称:xxxx.ignore(前缀名随便起,建议是git.ignore)

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

  • git.ignore文件模版内容如下

    # Compiled class file
    *.class
    
    # Log file
    *.log
    
    # BlueJ files
    *.ctxt
    
    # Mobile Tools for Java (J2ME)
    .mtj.tmp/
    
    # Package Files #
    *.jar
    *.war
    *.nar
    *.ear
    *.zip
    *.tar.gz
    *.rar
    
    # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
    hs_err_pid*
    
    .classpath
    .project
    .settings
    target
    .idea
    *.iml
    

(5)在.gitconfig文件中引用

(此文件在Windows的家目录中)

[user]
  name = yhm
  email = yaohm7788@163.com
[core]
  excludesfile = C:/Users/merge/git.ignore

注意:这里要使用正斜线(/),不要使用反斜线(\)

(6) 定位Git程序
在这里插入图片描述

(7)初始化本地库
在这里插入图片描述

(8)提交到本地库

右键点击项目选择Git -> Add将项目添加到暂存区。
在这里插入图片描述

在这里插入图片描述

(9)切换版本

查看历史版本
在这里插入图片描述

在这里插入图片描述

右键选择要切换的版本,然后在菜单里点击get。
在这里插入图片描述

第5章 GitLab的部署与使用

1.为什么使用GitLab-开发运维一体化

在这里插入图片描述

2. 部署安装GitLab

使用git,还需要一个远程代码仓库。常见的github、gitee这种远程代码仓库,公司中一般不会使用,因为他们是使用外网的,不够安全。一般企业都会搭建一个仅内网使用的远程代码仓库,最常见就是 GitLab。

2.1 安装部署

GitLab一般由公司的运维人员安装部署,开发人员只需要申请账号和相应权限即可,在这里我们在hadoop104上自己安装GitLab社区版体验一下。

2.1.1 安装准备

1)需要开启ssh:(已开启可跳过)

sudo systemctl status sshd
sudo systemctl enable sshd
sudo systemctl start sshd

2)防火墙开放http、https服务:(已关闭防火墙可跳过)

sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
2.1.2 rpm 包安装

1)上传安装包

下载地址:https://packages.gitlab.cn/#browse/search/

安装包较大,建议下载好手动上传服务器。这里上传到/opt/software

2)编写安装脚本

cd ~/bin
vim gitlab-install.sh

脚本内容如下:

sudo yum install -y curl policycoreutils-python openssh-server perl
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
sudo rpm -ivh gitlab-jh-16.6.1-jh.0.el7.x86_64.rpm
sudo yum install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix

3)修改脚本执行权限并执行

chmod +x gitlab-install.sh
sh gitlab-install.sh

**4)**修改external_url

编辑gitlab.rb

[atguigu@hadoop104 ~]$ sudo vim /etc/gitlab/gitlab.rb

在文件中找到external_url,修改为如下内容

external_url 'http://hadoop104'

保存退出

**5)**修改host

编辑gitlab.yml

[atguigu@hadoop104 ~]$ sudo vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml.example

找到gitlab.host修改为如下内容

  gitlab:

    \## Web server settings (**note:** host is the FQDN, do not include http://)

    host: hadoop104

    port: 80

    https: false

保存退出

修改文件名称

[atguigu@hadoop104 ~]$ sudo mv /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml.example /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

6)重装需要彻底卸载

1 卸载gitlab

[atguigu@hadoop104 opt]$ sudo rpm -e gitlab-jh-16.6.1

2 删除gitlab文件

[atguigu@hadoop104 opt]$ sudo rm -rf /etc/gitlab
[atguigu@hadoop104 opt]$ sudo rm -rf /var/opt/gitlab
[atguigu@hadoop104 opt]$ sudo rm -rf /opt/gitlab

3 重装如果卡在sudo gitlab-ctl reconfigure配置命令上,可以使用另外一个窗口执行

sudo systemctl restart gitlab-runsvdir
2.1.3 执行初始化

执行过程大概需要3分钟:

sudo gitlab-ctl reconfigure
2.1.4 启停命令

1)启动命令

sudo gitlab-ctl start

2)停止命令

sudo gitlab-ctl stop
2.1.5 修改 root 密码

1)访问Web页面

默认使用80端口,直接浏览器输入安装服务器的hostname或ip:hadoop104
在这里插入图片描述

2)查看root密码

账号root,密码将随机生成并在 /etc/gitlab/initial_root_password 中保存24 小时:

sudo cat /etc/gitlab/initial_root_password

zOyGe6aBQbkfYf6rOZP2qaWQOAo59K0HMrq9Rs7Yi2w=

修改密码:
在这里插入图片描述

2.1.6 设置简体中文

在这里插入图片描述

回到首页,可以看到变成中文:
在这里插入图片描述

3. 使用GitLab完成团队管理

去到一家公司,应该是已经有了GitLab平台,运维人员拥有root管理员账号。而作为一名普通的开发人员,你的leader和同事都拥有各自的GitLab账号和不同权限。入职后,你只需要申请开通GitLab账号和对应权限,不需要你来操作。

3.1 创建用户

为了更符合公司实际,我们假设数据组的leader账号为tutou,你是atguigu。
在这里插入图片描述

创建一个leader的账号:
在这里插入图片描述

再申请一个atguigu账号
在这里插入图片描述

用户会收到重置密码的邮件,也可以由管理员设置:
在这里插入图片描述

在这里插入图片描述

3.2 创建群组

在gitlab里,可以创建出组、组下的子组。在小公司里可以看见gitlab里边会创建出后端,大数据等等一系列组。尽量不要使用中文创建组名, 可以在组信息中的备注编写中文描述以及中文组名, 组内人员名称也尽量用全拼命名。

对于人员权限以及角色的控制也比较简单,有如下五种:

Ø Owner:最高权限,谁去创建组,这个组就被谁拥有,它可以开除管理员,但管理员无法操作owner的角色。

Ø Maintainer:(管理员-只是具备sudo权限的用户)管理员一般是给小组的组长,或者是给产品线的总监设定。

Ø Developer:是干活的人,就是写代码的程序员,可以进行代码的上传以及代码的下载,不能下载其他的组内的代码,只能下载它们组的代码。

Ø Repoter:比如现在有需求,其他组的大牛到我们组过来指导工作,要审视我们的代码,人家就提出需要一个权限,我不能给它developer因为它会改你代码,其他组的人不能改我们组的代码,所以就给一个repoter权限,他只能看,只读权限。

Ø guest:不用看,匿名,直接去掉。一般出现在从ldap中把离职人员的信息删掉,再去gitlab查这个人的时候,它就是一个guest用户(匿名)需要再到gitlab把它删掉(不删也没事)。

下面,我们假设研发部群组是rdc,下属后端组、前端组、大数据组等子群组:
在这里插入图片描述

1)创建研发中心群组rdc
在这里插入图片描述

2)创建大数据组

在研发中心组下,再创建一个大数据组(当然,其他还会有后端组、前端组等):
在这里插入图片描述

在这里插入图片描述

当然,根据公司情况还可以进一步在数据组下面细分子组(比如:离线、实时、湖等),这里我们就不再细分。

将数据组的leader设为bigdata的负责人:
在这里插入图片描述

将atguigu添加为普通的开发人员:
在这里插入图片描述

现在我们就有一个顶级群组rdc,其下有一个子群组bigdata,组内有管理员tutou,开发人员atguigu。

4.使用IDEA兼容GitLab

**1)**安装 GitLab 插件
在这里插入图片描述

2) 配置 SSH 免密登录

ssh-keygen -t rsa -C ergou@atguigu.com

在这里插入图片描述

到用户目录下.ssh查看id_rsa.pub文件
在这里插入图片描述

添加到GitLab中:
在这里插入图片描述

**3)**获取 GitLab 个人令牌
在这里插入图片描述

创建后,可以查看和复制生成的token:
在这里插入图片描述

**4)**添加 GitLab 服务
在这里插入图片描述

在这里插入图片描述

**5)**修改默认分支的保护策略
在这里插入图片描述

第6章 企业项目构建与开发分支

1. GitFlow工作流介绍

在项目开发过程中使用 Git 的方式常见的有:

1.1 集中式工作流

所有修改都提交到 Master 这个分支。比较适合极小团队或单人维护的项目,不建议使用这种方式。
在这里插入图片描述

1.2 功能开发工作流

功能开发应该在一个专门的分支,而不是在 master 分支上。适用于小团队开发。
在这里插入图片描述

1.3 GitFlow工作流

公司中最常用于管理大型项目。为功能开发、发布准备和维护设立了独立的分支,让发布迭代过程更流畅。
在这里插入图片描述

1.4 Forking工作流

在 GitFlow 基础上,充分利用了 Git 的 Fork 和 pull request 的功能以达到代码审核的目的。一般用于跨团队协作、网上开源项目。
在这里插入图片描述

2. 各分支功能介绍

在这里插入图片描述

2.1 主干分支 master

主要负责管理正在运行的生产环境代码,永远保持与正在运行的生产环境完全一致。为了保持稳定性一般不会直接在这个分支上修改代码,都是通过其他分支合并过来的。

2.2 开发分支 develop

主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。

2.3 功能分支 feature

为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。 开发完成后会合并到开发分支。

2.4 准生产分支(预发布分支) release

较大的版本上线前,会从开发分支中分出准生产分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。

2.5 bug 修理分支 hotfix

主要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修复完毕并测试上线后,并回主干分支和开发分支。并回后,视情况可以删除该分支。

3. 创建项目与分支管理

首先在Gitlab上面按照项目规格创建远程仓库。
在这里插入图片描述

3.1 idea与远程仓库连接

在这里插入图片描述

3.2 不同分支的提交与合并

(1)新建分支和切换分支
在这里插入图片描述

(2)不同分支提交代码与合并

首先在feature分支编写第一个模块的模拟代码,并提交

package com.atguigu;


public class module1 {
    public static void main(String[] args) {
        System.out.println("完成第一个模块的开发");
    }
}

(3)合并feature到develop分支
在这里插入图片描述

在这里插入图片描述

审查测试通过之后,完成合并
在这里插入图片描述

第7章 冲突提交

实际单个模块的开发往往不是单独一个人来进行操作,当多个人协同开发相同的一个项目时,就会涉及到提交冲突的问题。

1. 不同人修改不同文件

(1)在远程仓库添加gitLab.txt
在这里插入图片描述

(2)在本地IDEA中添加代码,继续进行第二个模块的开发

public class Module2 {
    public static void main(String[] args) {
        System.out.println("开始进行模块2的开发");
    }
}

(3)提交代码到远程仓库,此时会有报错信息
在这里插入图片描述

Git会智能识别,采用merge合并命令,拉取远端文件到本地进行合并。

(4)查看Git提交的全部历史记录,可以看到中间有拉取Gitee日志的部分
在这里插入图片描述

2. 不同人修改同文件的不同区域

(1)远程仓库修改module1代码

public class Module1 {
    public static void main(String[] args) {
        System.out.println("没完成模块1的开发");
    }
}

(2)本地IDEA继续添加代码


//添加注释
public class Module1 {
    public static void main(String[] args) {
        System.out.println("完成模块1的开发");
    }
}

(3)提交代码,之后push到远程仓库
在这里插入图片描述

同样可以采用merge命令,git会自动合并不同的区域代码。
在这里插入图片描述

在这里插入图片描述

3. 不同人修改同文件的相同区域

(1)远程仓库添加模块开发顺利
在这里插入图片描述

(2)本地IDEA添加模块开发遇到了bug

public class module1 {
    public static void main(String[] args) {
        System.out.println("完成第一个模块的开发");
        System.out.println("继续进行第一个模块的二次开发");
        System.out.println("模块开发继续!!!");
        System.out.println("模块开发遇到了bug!");
    }
}

在这里插入图片描述

无法直接采用merge命令,需要人为判断哪些作为最终的结果来保留

(3)之后需要重新提交到远程仓库
在这里插入图片描述

4. 同时变更文件名和文件内容

(1)本地IDEA修改原先的文件名称为Module1plus,之后重新开发实现功能

//添加注释
public class Module1plus {
    public static void main(String[] args) {
        System.out.println("没完成模块1的开发");
        System.out.println("模块1的开发遇到了bug");
        System.out.println("完成了模块1的开发");
        System.out.println("进一步完成了模块1的拓展开发");
    }
}

(3)提交代码修改到远程仓库
在这里插入图片描述

可以直接提交成功。

5. 不同人把同一文件改成不同的文件名

(1)远程仓库把文件名称改为module1

(2)本地IDEA修改文件名称为module3

(3)提交到远程仓库
在这里插入图片描述

(4)需要手动宣传使用哪一个
在这里插入图片描述

push会导致报错,之后需要用户自己解决保留哪些文件。

(5)使用命令解决最终的冲突

C:\mybigdata\project\gitlab_demo>git status
#删除掉报红找不到的文件
C:\mybigdata\project\gitlab_demo>git rm src/main/java/com/atguigu/Module1Plus.java

(6)最后重新选择正确的代码提交到仓库
在这里插入图片描述

第8章 GitLab功能拓展

1. 使用GitLab完成code review

在这里插入图片描述

2. CICD部署程序

使用gitLab的自动部署功能,可以快速实现自动部署,完成运行。
在这里插入图片描述

3. 安装gitLab-runner

上传安装包之后执行

sudo rpm -ivh gitlab-runner-16.6.1-1.x86_64.rpm

之后运行注册命令

sudo gitlab-runner register
#输入地址
http://hadoop104
#输入token 
nqaTgGDeJyFsA5fzg8ck
#输入描述
[hadoop104]: ci
#输入标签
ci
#输入记录标签

WARNING: Support for registration tokens and runner parameters in the 'register' command has been deprecated in GitLab Runner 15.6 and will be replaced with support for authentication tokens. For more information, see https://docs.gitlab.com/ee/ci/runners/new_creation_workflow 
Registering runner... succeeded                     runner=nqaTgGDe
#选择运行模式 -> 使用最简单的shell
shell

token的位置
在这里插入图片描述

注册完成之后,runner就已经上线了。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


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

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

相关文章

Python实现BOA蝴蝶优化算法优化卷积神经网络分类模型(CNN分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

云存储中常用的相同子策略的高效、安全的基于属性的访问控制的论文阅读

参考文献为2022年发表的Efficient and Secure Attribute-Based Access Control With Identical Sub-Policies Frequently Used in Cloud Storage 动机 ABE是实现在云存储中一种很好的访问控制手段,但是其本身的计算开销导致在实际场景中应用收到限制。本论文研究了…

Wireshark TS | HTTP 传输文件慢问题

问题背景 之前有几篇文章写过关于应用传输慢的问题,延用之前的老套话,应用传输慢是一种比较常见的问题,慢在哪,为什么慢,有时候光从网络数据包分析方面很难回答的一清二楚,毕竟应用的定义范围实在太广&…

蓝桥杯嵌入式学习笔记(9):RTC程序设计

目录 前言 1. RTC介绍 2. 使用CubeMx进行源工程配置 3. 代码编程 3.1 准备工作 3.2 进行bsp_rtc.h编写 3.3 进行bsp_rtc.c编写 3.4 main.c编写 3.4.1 头文件引用 3.4.2 变量声明 3.4.3 子函数声明 3.4.4 函数实现 3.4.5 main函数编写 4. 代码实验 5. 总结 前言 因本人备赛蓝…

企业微信企业主体变更认证介绍

企业微信变更主体有什么作用? 说一个自己亲身经历的事情,当时我在一家教育公司做运营,公司所有客户都是通过企业微信对接的。后来行业整顿,公司不得不注销,换了营业执照打算做技能培训,但发现注销后原来的企…

高斯消元详解

算法概述 高斯消元法是一个用来求解线性方程组的算法 那么什么是线性方程组呢? 线性:每个未知数次数都为1次方程组:多个方程,多个未知数。 (a1x1a2x2..anxnbn)x为一次的 当x是平方的时候就不是线性 简而言之就是有多个未知数&#xff…

STL是什么?如何理解STL?

文章目录 1. 什么是STL2. STL的版本3. STL的六大组件4. 如何学习STL5.STL的缺陷 1. 什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。 2. …

XSS 与 CSRF 攻击——有什么区别,如何加以防护

跨站脚本(XSS)和跨站请求伪造(CSRF),它们将恶意脚本注入目标系统,以进一步利用技术栈或窃取用户数据。 什么是 XSS 和 CSRF? CSRF和XSS都是客户端攻击,它们滥用同源策略,利用web应用程序和受害用户之间的信任关系。XSS和跨站脚…

特征增强自蒸馏卷积神经网络

目录 1.1 模型总体架构 1.2 特征增强金字塔模块 1.3 辅助分类器 1.1 模型总体架构 与自然图像相比,遥感场景图像地物较为复杂,具有类间相似度高和类内差异大的特点,这导致常用的网络模型难以有效学习遥感场景图像的表征特征。此外&#xf…

分布式链路追踪与云原生可观测性

分布式链路追踪系统历史 Dapper, a Large-Scale Distributed Systems Tracing Infrastructure - Google Dapper,大规模分布式系统的跟踪系统大规模分布式系统的跟踪系统:Dapper设计给我们的启示 阿里巴巴鹰眼技术解密 - 周小帆京东云分布式链路追踪在金…

全面的Docker快速入门教程(详细)

前言: 都2024年了,你还在为了安装一个开发或者部署环境、软件而花费半天的时间吗?你还在解决开发环境能够正常访问,而发布测试环境无法正常访问的问题吗?你还在为持续集成和持续交付(CI / CD)工…

Web 前端性能优化之五:构建优化

4、构建优化 资源的合并与压缩所涉及的优化点包括两方面:一方面是减少HTTP的请求数量,另一方面是减少HTTP请求资源的大小。 1、HTML 压缩 1、什么是 HTML 压缩 百度首页部分 HTML 源代码 谷歌首页部分 HTML 源代码 虽然这些格式化的字符能带来很好的代…

C++ //练习 11.3 编写你自己的单词计数程序。

C Primer(第5版) 练习 11.3 练习 11.3 编写你自己的单词计数程序。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /*************************************************************************> …

当Pycharm中右键运行python程序时出现Run ‘pytest in tests ***py‘,如何解决?

1、在Pycharm中右键运行python程序时出现Run pytest in tests ***py ,这是进入了Pytest模式。 2、解决办法 进入到File->Settings->Tools->Python integrated Tools页面或者快捷键(CtrlAltS) 找到Testing下的Default test runner …

ES学习日记(十)-------Java操作ES之连接客户端

Elasticsearch有两种连接方式: transport、rest。transport 通过TCP方式访问ES(只支持iava),rest 方式通过http API 访问ES(没有语言限制)。 ES官方建议使用Iest 方式,transport 在7.8 版本中不建议使用,在8.x的版本中废弃。你可以用Java客户…

elementui 左侧或水平导航菜单栏与main区域联动

系列文章目录 一、elementui 导航菜单栏和Breadcrumb 面包屑关联 二、elementui 左侧导航菜单栏与main区域联动 三、elementui 中设置图片的高度并支持PC和手机自适应 四、elementui 实现一个固定位置的Pagination(分页)组件 文章目录 系列文章目录…

力扣1379---找出克隆二叉树的相同节点(Java、DFS、简单题)

目录 题目描述: 思路描述: 代码: (1): (2): 题目描述: 给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 ori…

天眼护航 安全无界:天通哨兵PS02—电力巡检保护的智能利器

在电力行业中,输电线路的安全稳定运行对于保障社会经济活动至关重要。然而,广阔的输电线路常常穿越复杂的地形和恶劣的自然环境,给电力巡检和保护工作带来了巨大挑战。 为了提高巡检效率和响应速度,更好地保障电力设施的安全运行…

Redis底层数据结构-IntSet

IntSet是Redis中set集合的一种实现方式,基于整数数组来实现,并具备长度可变,有序等特征。 结构如下图所示: int8_t contents[]的元素只有一个字节,能表示的整数范围只有-128~127,是不是有点小呀&#xf…

简单的安全密码生成器PwGen

什么是 PwGen ? PwGen 是一个简单的 Docker Web 应用程序,旨在生成具有可自定义选项的安全密码或密码短语。用户可以选择生成具有特定标准的随机密码或由随机单词组成的密码。其他功能包括在密码中包含大写字母、数字和特殊字符的选项,或者将…