【尚硅谷】Git与GitLab的企业实战 学习笔记

目录

第1章 Git概述

1. 何为版本控制

2. 为什么需要版本控制

3. 版本控制工具

4. Git简史

5. Git工作机制

6. Git和代码托管中心

第2章 Git安装

第3章 Git常用命令

1. 设置用户签名

1.1 基本语法

1.2 案例实操

2. 初始化本地库

2.1 基本语法

2.2 案例实操

3. 查看本地库状态

3.1 基本语法

3.2 案例实操

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

(2)新增文件

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

4. 添加暂存区

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

(1)基本语法

(2)案例实操

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

5. 提交本地库

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

(1)基本语法

(2)案例实操

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

6. 修改文件(hello.txt)

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

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

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

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

7. 历史版本

7.1 查看历史版本

(1)基本语法

(2)案例实操

7.2 版本穿梭

(1)基本语法

(2)案例实操

第4章 Git客户端便捷操作

1. 安装部署

2. 基础操作

2.1 设置个人信息

2.2 创建新的Git仓库

2.3 提交不同版本

3. 连接GitHub远程仓库

4. Gitee替代GitHub

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

第5章 GitLab的部署与使用

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

2. 部署安装GitLab

2.1 安装部署

2.1.1 安装准备

2.1.2 rpm 包安装

2.1.3 执行初始化

2.1.4 启停命令

2.1.5 修改 root 密码

2.1.6 设置简体中文

3. 使用GitLab完成团队管理

3.1 创建用户

3.2 创建群组

4. 使用IDEA兼容GitLab

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

1. GitFlow工作流介绍

1.1 集中式工作流

1.2 功能开发工作流

1.3 GitFlow工作流

1.4 Forking工作流

2. 各分支功能介绍

2.1 主干分支 master

2.2 开发分支 develop

2.3 功能分支 feature

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

2.5 bug 修理分支 hotfix

3. 创建项目与分支管理

3.1 idea与远程仓库连接

3.2 不同分支的提交与合并

第7章 冲突提交

1. 不同人修改不同文件

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

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

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

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

第8章 GitLab功能拓展

1. 使用GitLab完成code review

2. CICD部署程序

3. 安装gitLab-runner


第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安装

官网地址: Git或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 客户端来完成页面化操作。

Git - GUI Clients

推荐下载使用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推送即可完成同步。

4. Gitee替代GitHub

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

登录账号之后创建新的仓库

同步远程Gitee仓库的方式和同步GitHub仓库方法完全一致。

5. 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)上传安装包

下载地址:Nexus Repository Manager

安装包较大,建议下载好手动上传服务器。这里上传到/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的拓展开发");
    }
}

(2)提交代码修改到远程仓库

可以直接提交成功。

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就已经上线了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用常量数组解码的方法

【题目描述】 把手放在键盘上时,稍不注意就会往右错一位。这样,输入Q会变成输入W,输入J会变成输入K等。键盘如图所示。 输入错位后敲出的几行字符串,输出打字员本来想打出的句子。 输入仅包含数字、空格、大写字母或标点符号&am…

2025中国国际储能大会暨展览会(简称“CIES”)

2025年第十五届中国国际储能大会暨展览会 2025 15th China International Energy StorageConference and Exhibition 时间:2025年3月23-26日 地点:杭州国际博览中心主办单位:中国化学与物理电源行业协会承办单位:中国化学与物理电…

Argo基础课程3-BGC-Argo数据质量控制

数据获取: Coriolis/France: https://data-argo.ifremer.fr/dac/ FNMOC/USA: https://usgodae.org/pub/outgoing/argo/dac/ Real-Time数据 24小时内发布,提交至自动质量控制平台进行标记和调整,“R” Delayed-mode数据 经过仔细浏览时间序列…

【Python初学指南】:从零开始学习Python烟花代码实战案例

1. Python入门基础 Python是一种高级编程语言,具有简单易学、功能强大的特点。通过安装Python环境,我们可以进行第一个Python程序的编写和运行。Python的入门基础对于初学者来说是非常重要的第一步,因为它奠定了后续学习和应用的基础。 在P…

哪种裤子穿起来舒服?夏季舒适透气的男装裤子分享

想必大家都会十分注重自己的外观形象,所以对选择的衣服上有不少要求。但是现在市面上却有很多质量不好的裤子,一些商家为了利润而使用一些舒适性差的面料。 那到底裤子哪个品牌的质量比较好?作为一名服装测评师,这些年测评过的品牌…

open Gauss 数据库-05 openGauss数据库备份恢复指导手册

发文章是为了证明自己真的掌握了一个知识,同时给他人带来帮助,如有问题,欢迎指正,祝大家万事胜意! 目录 前言 openGauss数据库备份恢复 1 实验介绍 1.1 关于本实验 1.2 实验目的 2 实验前提 3 物理备份和恢复…

json diff patch

文件和图片的比对靠字符串 目录 流程 安装 效果 使用 自适应 数组:最长公共子序列(LCS) 数组中的对象,给定id,类似dom tree的比较 流程 安装 npm install jsondiffpatch import * as jsondiffpatch from jsondiffpatch; const jsond…

中电金信:夯实云原生时代的系统韧性建设——中电金信混沌工程金融业实践

IT系统建设在经历过单机、集中、分布式的演变历程后,系统运维演练、故障模拟测试的复杂度也不断提高。在复杂的分布式系统中,基础设施、应用平台都可能产生不可预知的故障,在不能确知故障根源的情况下,我们无法阻止故障的发生。更…

Transform结构

面试者经常会问transform这个模型,一个典型的seq2seq结构。 1 背景 试问几个问题,为什么提出了transform模型。RNN对于长时间序列(超过40)压缩到一个上下文向量中出现记忆退化现象,无法更好捕捉上下文信息。因此trans…

C语言知识(1) static修饰详解分享

1.前言 哈喽大家好啊,今天来给大家分享c中static的使用,希望能对大家有所帮助,请大家多多点赞,收藏支持我哦~ 2.正文 在讲解static之前,先给大家铺垫三个概念,方便大家理解。 2.1三则知识铺垫 2.1.1作…

写了一个 SRE 调试工具,类似一个小木马

远程操作机器有时会比较麻烦,我写了一个工具,主要功能:1.远程执行命令 2.上传下载文件。是一个 Web Server,通过 HTTP 请求来操作机器,类似一个小木马。当然,因为是一个 Web Server,所以也提供了…

批量人脸画口罩

网上参考的修改了一下,图片放在根目录,命名叫做1.png,批量人脸画口罩 这个程序的目的是为了解决人脸数据集中的特征点缺失的不足 # -*- coding: utf-8 -*- import os import numpy as np from PIL import Image, ImageFile__version__ 0.3…

短视频矩阵源头====技术文档交付

短视频矩阵源头技术文档交付 搭建短视频矩阵系统源码需要以下步骤: 1. 确定系统需求和功能:明确系统需要支持哪些功能,例如短视频的上传、存储、播放、分享、评论、点赞等。 2. 选择合适的编程语言和框架:根据需求选择合适的编程…

【python】描述性统计计算偏斜度和峭度

文章目录 1.编写计算偏斜度和峭度的函数。并用自己编写的函数计算课本23页的习题1.5数据的偏斜度和峭度。2.从1.5数据中随机抽取2个容量为20的样本,分别计算它们的平均数和标准差3.请绘制给定数据的频率分布直方图,计算数据的均值、标准差、偏斜度和峭度…

IDP之Backstage - 环境搭建

0. 目录 1. 前言2. 环境准备(Windows10下)2.1 安装nvm2.2 git和docker安装 3. 创建模板项目3.1 典型错误: fails on the yarn install step3.2 再次启动3.3 验证 4. 相关 1. 前言 本不想写这篇,因为看着官网文档写着挺简单的,但实…

【C语言】多字节字符、宽字符(涉及字符集和编码)

字符集、编码: 字符集:一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。例如:ASCII、Unicode、GB2312、GBK、GB18030、BIG5(繁体中文) ... 编码方式:符号…

半导体厂商

引言: 学习了这么久了, 突然发现对某些陌生类型的单片机的历史、公司、不是很了解, 很多只是听说过, 本文的分享就是为了解决关于上述疑问的。 目录 C51 STM32 AVR PIC NXP(恩智浦) Infineon (英飞凌…

2024新手做电商——哪个平台开店更好做?多平台对比分析!

哈喽~我是电商月月 随着互联网的发展,线下创业越来越不好做 相对于其他创业项目来说,电商的门槛还相对低一点,所以一大批人创业的选择,就看向了电商行业 但准备开店的新手朋友纠结了:自己没有基础,选择哪…

Java面试:MySQL面试题汇总

1.说一下 MySQL 执行一条查询语句的内部执行过程? 答:MySQL 执行一条查询的流程如下: 客户端先通过连接器连接到 MySQL 服务器;连接器权限验证通过之后,先查询是否有查询缓存,如果有缓存(之前…

中海达亮相全国地灾防治成果交流会, 硬核产品引关注

4月17日-18日,全国地质灾害防治新方法新技术新设备成果交流会在云南昆明召开。本次活动主题为“提升地质灾害防治能力,服务保障高质量发展”,由中国地质灾害防治与生态修复协会举办,来自业务主管部门、行业协会及相关企业等800多名…