【持续集成_01课_Git版本管理及基本应用】

一、什么是持续集成

测试代码、开发代码、测试报告、发送邮件...组合到一起来 --- 流水线。 (有一个规范的流程)

持续集成(Continuous Integration,简称CI) 是一种软件开发实践,旨在将代码集成到共享仓库中,并频繁地自动执行构建和测试。这种方法允许团队更早地发现并定位问题,从而确保软件质量。

类似于行云流水线

持续集成通常涉及以下关键步骤:

代码提交:开发人员将他们的代码更改提交到共享的代码仓库(如Git)。
自动构建:每当有新的代码提交时,自动化工具(如Jenkins、Travis CI等)会触发构建过程,从代码仓库中拉取最新的代码,并执行编译、链接等操作。
自动化测试:构建成功后,自动化测试会执行,包括单元测试、集成测试、功能测试等,以确保代码更改没有引入新的问题。
反馈:测试结果会及时反馈给开发人员,以便他们了解更改是否通过了测试,或者需要修复哪些问题。
持续集成的好处包括:

更早发现问题:由于每次代码更改都会触发构建和测试,所以问题可以在早期阶段就被发现,从而减少了修复成本。
提高代码质量:频繁的测试和反馈可以确保代码质量始终保持在较高水平。
促进团队协作:通过共享的代码仓库和自动化的构建/测试过程,团队成员可以更好地协作,确保他们的更改不会破坏其他人的工作。
加快开发速度:由于问题可以更早地被发现和修复,所以开发速度通常会更快。
总之,持续集成是一种重要的软件开发实践,它可以帮助团队提高代码质量、促进协作,并加快开发速度。

二、版本控制概念与环境搭建

1、版本管理

1)版本管理的区别

本地:线下进行版本的管理,问题: 不能同步、资料的丢失

云:线上进行版本管理 -- 线上多人维护操作、避免了资料的丢失的可能性

对代码的线上管理,则是把代码上传到公共的平台 (托管平台)--在线代码仓库

2、代码版本管理工具和平台

 Git结合Gittee进行基本设置【重要】

Git是一款分布式源代码管理工具(版本控制工具) ,一个协同(大家一起做一件事情)的工具。

1、工具:

  1. Git -- 一般通过命令方式去进行执行 (必须掌握常见的命令)
  2. 在线仓库:比如说:Gitee、GitHub、GitLab、Gogs等等(四个平台都是基于Git的,操作几基本一致,只是中间两个是国外的,访问可能有问题,所以只学两个红色的)

2、平台

网址:Gitee - 基于 Git 的代码托管和研发协作平台

总结: 通过Git 命令上传代码到在线仓库; 通过Git 命令拉取代码到本地仓库

代码仓库可以理解成是一个文件夹

3、安装

安装包下载官网:https://git-scm.com/download/win

windows:   双击.exe安装包,一路next傻瓜式安装,即可。最后确认一下安装成功即可

mac: 需要用命令去按安装。讲解在01课44分钟左右

 安装包下载官网:https://git-scm.com/download/win

运行这个命令去安装

4、配置当前用户信息

执行这2个命令即可:

git config --global user.name "用户名"
git config --global user.email "邮箱"

配置完成后,查看配置

git config --list

 如图

 上面的配置实际是在这个文件

5、仓库的创建

仓库是否有内容分为:空仓库 和 非空仓库 区分 ;第一步操作会有一些小区别。

 6、拉取代码

1、非空仓库

1.1)切到保存的路径

1.1.1)方式一:可以在cmd通过命令切换到这个路径

先cd  路径,回车。  再直接D:

1.1.2)方式二:可以直接在所在路径,输入cmd

回车后会直接在cmd打开这个路径位置

1.1.3)方式三:git.bash(安装Git自带的)

 

1.2)拉取代码

命令:

git clone 地址(https/ssh)   --- 自动建立远程连接
1.2.1)https方式拉取
命令:

git clone https://gitee.com/****8*.git

 https需要生成令牌,每次拉取要输入令牌

1.2.1.1)git.bash下载成功

1.2.1.2)或者在cmd下载成功

拉取成功

上面两种方式任一即可,再查看本地路径,已经拉取下来了

 1.2.2)ssh方式拉取
命令:

git clone git@gitee.com:****.git
 1.2.2.1)生成公钥:

1. 在cmd 中输入: ssh-keygen -t ed25519 -C "邮箱地址" ,邮箱随意最好是gitee邮箱地址。

ssh-keygen -t ed25519 -C "邮箱地址"

2. 三次回车:直接回车即可。不要输密码,否则后面每次拉取都需要输密码

 自己:生成的公钥,其实不是实际的公钥。公钥还是得在存储的那个文件里才能获取到

3. 配置:需要到Gitee配置SSH公钥

4. 正常拉取即可

7、提交代码

1、空仓库

自己从0 到1 的仓库怎么去进行代码的维护。(提交代码)

(一定要让空仓库变成非空仓库)

1.1)方式一:点击初始化的按钮进行操作

1.2)方式二:完全执行命令的方式

Git整体流转的原理

 Git常用命令使用【重要】

1、mkdir testapi01   # 创建文件夹
2、cd testapi01    # 进入到文件夹
3、git init     # 初始化命令

执行完会提示: 
Initialized empty Git repository in F:/ProjectHcEdu/cicdclass/testapi01/.git/  
提示是告知,自动生成了一个.git的隐藏文件

4、touch README.md  # 开始新建文件/或移动自己的本地代码文件到这个文件夹
(这个命令,cmd是执行不了的)

# 提交代码的命令:

1. 提交文件:
确定你要提交文件,单个文件则写对应的文件名,多个文件那么git add . 
git add README.md  (提交单个文件)
git add .   (提交多个文件,就.就完事了,没其他)

2. 提交文件的说明:
将暂存区中的更改说明 提交到版本历史记录, 这样可以通过git log 查看提交信息
git commit -m "first commit"

3. 建立远程连接 (初始化才需要这么做,为什么? 后面这个就是拉取代码库的地址 https/ssh)
git remote add origin git@gitee.com:yulisasyc/testapi01.git

4. 确认进行提交操作
git push -u origin "master"

非空仓库,直接从线上拉取下来的(自己已经建立连接),在这个位置如果你需要提交代码的话,不需要建立远程连接。

空仓库,里面没有远程连接

执行完建立连接的命令,就立马在配置文件建立了连接

 

最终提交成功后
 

五. Git解决版本冲突问题【重要】

版本冲突

【绕的很】版本冲突怎么办:两个人同时做了改动。

场景1:修改的是非一个文件

场景2:修改的是同一个文件

场景1:修改的非同一个文件

方法一: git pull 拉取代码 ,从远程获取代码并合并本地的版本。

知道有人有修改时,自己要先拉取一下最新代码,合到本地版本。然后再提交自己的代码,正常提交即可。

方法二:

我不知道对方有更新。我就一次性卡拉提交,这时候就会提示冲突错误信息。

(原来拉取的不能提交了)

解决方案:

1. 新建一个仓库文件夹,把最新的代码拉取下来

2. 然后把你修改的文件放进去 (当修改的文件不是同一个时,直接把自己的文件放进去就可以)

3. 重新提交即可

PS:另外一种解决方式,不推荐()

git reset --hard  #  用于重置当前分支的HEAD指针和索引到指定的提交,并删除所有未提交的修改。
git pull # 拉取线上的最新的代码
问题:此方法本地修改的代码会被丢弃,不可找回。

场景2:修改的是同一个文件

版本管理工具也不知道你要保留哪些内容,所以要对应的开发人员去手动进行取舍。

提交时,报错

步骤:

git branch 查看本地的分支 --默认当前分支。

1、创建分支:新建的分支和之前的分支都会默认指向当前分支(master 和 test 都是 自己本地分支)

git branch 新建分支名

2. 把master分支变成:线上的分支 --- 先进行回滚,然后再拉取。

通过git log 查看 commit-id

git reset --hard commit-id --回滚,之前OK的 分支

目前地步:master已经变成了之前ok 和 test 是 自己之前本地分支

怎么看分支的内容? 可以通过切分支看。

切分支:
gti checkout 分支名

把master分支变成线上的代码:

git pull 代码

目前地步:master已经变成了线上的分支 和 test 是 自己之前本地分支

目标:1个分支指定自己的分支,1个是线上的分支 ,最后2个合并。

4. 合并:在master分支执行: git merge test-- (分支名),进行取舍

5. 正常提交即可。

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

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

相关文章

网页抓取和网页爬取之间有何区别?

随着互联网的发展和信息的爆炸式增长,数据收集和处理已成为企业和个人不可或缺的需求。在此背景下,网页抓取和网络爬虫已成为两种常见的数据收集方法。虽然这两种方法看似相似,但它们的方法和目标存在显著差异。本文将为您详细介绍网页抓取和…

【科技前沿】电子设计新贵SmartEDA:为何它引领行业风潮?

在当今这个电子科技日新月异的时代,电子设计工具如同设计师的魔法棒,不断推动着产品创新的速度。而近期,一款名为SmartEDA的电子国产设计仿真软件异军突起,成为了行业内的新宠。那么,SmartEDA究竟有何过人之处&#xf…

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂…

# bash: chkconfig: command not found 解决方法

bash: chkconfig: command not found 解决方法 一、chkconfig 错误描述: 这个错误表明在 Bash 环境下,尝试执行 chkconfig 命令,但是系统找不到这个命令。chkconfig 命令是一个用于管理 Linux 系统中服务的启动和停止的工具,通常…

ChatGPT对那些带有残疾迹象的简历有偏见——但它可以改善

ChatGPT对那些带有残疾迹象的简历有偏见——但它可以改善 去年,华盛顿大学(University of Washington)研究生凯特•格拉兹科(Kate Glazko)在寻找研究实习机会时注意到,招聘人员在网上发布消息称,他们使用OpenAI的ChatGPT和其他人工智能工具来…

【b站-湖科大教书匠】3 数据链路层-计算机网络微课堂

课程地址:【计算机网络微课堂(有字幕无背景音乐版)】 https://www.bilibili.com/video/BV1c4411d7jb/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 3 数据链路层 3.1 数据链路层概述 3.1.1 数据链路层在网络体系结…

Eureka 服务注册与发现

目录 前言 注册中心 CAP 理论 常⻅的注册中心 CAP理论对比 Eureka 搭建 Eureka Server 引⼊ eureka-server 依赖 完善启动类 编写配置⽂件 启动服务 服务注册 引⼊ eureka-client 依赖 完善配置⽂件 启动服务 服务发现 引⼊依赖 完善配置⽂件 远程调⽤ 启动…

【设计模式深度剖析】【9】【行为型】【访问者模式】| 以博物馆的导览员为例加深理解

👈️上一篇:备忘录模式 | 下一篇:状态模式👉️ 设计模式-专栏👈️ 文章目录 访问者模式定义英文原话直译如何理解呢? 访问者模式的角色类图代码示例 访问者模式的应用优点缺点使用场景 示例解析:博物馆的导览员代码示例 访问…

uni-app与原生插件混合开发调试3-安卓原生插件开发调试和打包

安卓原生插件开发调试和打包 上面已经介绍了怎么安装开发和调试环境&#xff0c;接下来就是安卓原生插件的具体开发和调试步骤&#xff1a; 将uniapp前端项目的index.vue文件新增代码。代码如图所示&#xff1a; <template><view><view><text>{{titl…

GaussDB关键技术原理:高性能(二)

GaussDB关键技术原理&#xff1a;高性能&#xff08;一&#xff09;从数据库性能优化系统概述对GaussDB的高性能技术进行了解读&#xff0c;本篇将从查询处理综述方面继续分享GaussDB的高性能技术的精彩内容。 2 查询处理综述 内容概要&#xff1a;本章节介绍查询端到端处理的…

Go团队的工作方式

在Go 1.23版本[1]即将发布(2024.8)之前&#xff0c;在GopherCon 2024[2]开幕(2024.7)之前&#xff0c;Go团队成员Cameron Balahan(Go产品负责人)[3]、 Sameer Ajmani&#xff08;Go团队工程总监&#xff09;和Russ Cox&#xff08;Go团队技术负责人&#xff09;[4]参加了业界知…

2024 年最新 Python 基于火山引擎豆包大模型搭建 QQ 机器人详细教程(更新中)

豆包大模型概述 火山引擎官网&#xff1a;https://www.volcengine.com/ 字节跳动推出的自研大模型。通过字节跳动内部50业务场景实践验证&#xff0c;每日千亿级tokens大使用量持续打磨&#xff0c;提供多模态能力&#xff0c;以优质模型效果为企业打造丰富的业务体验。 模型…

“论云原生架构及其应用”写作框架,系统架构设计师

论文真题 近年来&#xff0c;随着数字化转型不断深入&#xff0c;科技创新与业务发展不断融合&#xff0c;各行各业正在从大工业时代的固化范式进化成面向创新型组织与灵活型业务的崭新模式。在这一背景下&#xff0c;以容器和微服务架构为代表的云原生技术作为云计算服务的新…

智能化改造助力企业高质量发展

引言 背景介绍 在当今全球经济环境中&#xff0c;变化和不确定性已成为常态。企业面临的竞争压力不断增加&#xff0c;市场竞争日益激烈。新兴市场的崛起、技术进步和消费者需求的快速变化&#xff0c;使得传统的商业模式和生产方式面临巨大挑战。为了在这样的环境中保持竞争力…

Go语言之基础入门

网站&#xff1a;http://hardyfish.top/ 免费书籍分享&#xff1a; 资料链接&#xff1a;https://url81.ctfile.com/d/57345181-61545511-81795b?p3899 访问密码&#xff1a;3899 免费专栏分享&#xff1a; MySQL是怎样运行的从根儿上理解MySQL 课程链接&#xff1a;https:/…

(13)DroneCAN 适配器节点(一)

文章目录 前言 1 特点 2 固件 3 ArduPilot固件DroneCAN设置 4 DroneCAN适配器节点 前言 这些节点允许现有的 ArduPilot 支持的外围设备作为 DroneCAN 或 MSP 设备适应 CAN 总线。这也允许扩展自动驾驶仪硬件的功能。如允许 I2C 设备&#xff08;如罗盘或空速&#xff09…

网信办公布第六批深度合成服务算法备案清单,深兰科技大模型入选

6月12日&#xff0c;国家互联网信息办公室发布了第六批深度合成服务算法备案信息&#xff0c;深兰科技硅基知识智能对话多模态大模型算法通过相关审核&#xff0c;成功入选该批次《境内深度合成服务算法备案清单》。同时入选的还有腾讯混元大模型多模态算法、支付宝图像生成算法…

什么样的落地台灯比较好?五款宝藏可靠护眼大路灯推荐

现代家庭中&#xff0c;落地台灯也逐渐的代替传统台灯&#xff0c;成为许多孩子在读写时的照明神器&#xff0c;它已经被许多家长认可&#xff0c;宽广的光线光线清晰&#xff0c;视觉上舒适了不少。然而&#xff0c;目前市场上有许多品牌未经过充分的技术、材质和工艺研究&…

OpenCV颜色检测

OpenCV颜色检测 前言策略分析根据颜色检测目标对象相关链接 前言 绿幕技术是一种经典的视频编辑技术&#xff0c;可以用于将人物置于不同的背景中。例如在电影制作中&#xff0c;技术的关键在于演员不能身着特定颜色的衣服(比如绿色)&#xff0c;站在只有绿色的背景前。然后&a…