【持续集成_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. 正常提交即可。

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值