当前位置: 首页 > news >正文

CICD之Git版本管理及基本应用

   CICD:持续集成,持续交付--让对应的资料,对应的项目流程更加规范--提高效率

     CICD 有很多的工具 GIT就是其中之一

1.版本控制概念与环境搭建

                GIT的概念:

                 Git是一款分布式源代码管理工具(版本控制工具) ,一个协同的工具。 Git得其数据更像是一系列微型文件系统的快照。使用Git,每次提交或保存项目状态时,Git基本上都会记录当时所有文件的外观,并存储对该快照的引用。为了提高效率,如果文件没有改变,Git不会再次存储文件。

首先做一件事情有可能是一个人做,也有可能是多个人做。当多个人做的时候,我们称之为: 协同 。往往很多问题就存在人多的时候要进行对应的管理,我们该怎么做呢

                常规的操作: 通过在线文档或者群聊消息进行发送文档的操作。

                自动化测试:通过GIT进行在线管理,可两者同时进行操作,通过GIT工具会主动将文件                  进行合并

  1. 测试用例:在线文档 --- 共享
  2. 代码怎么去进行实现呢?--- 用到对应的版本管理工具Git --- 存档、共享

Git环境搭建:

        https://git-scm.com/download/win

        安装git

        配置当前用户的个人信息

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

                  检查:

                

git config --list

        

2.获取Gitee私钥和公钥

                在Gitee 中对应的仓库分为:公有和私有的,当你设置了项目对应的权限即要进行配置对应的私钥和公钥,所以首先获取对应的私钥和公钥,用于身份验证和安全性的加密工具

        公钥:公钥是一种加密密钥,用于将数据加密为只有对应的私钥可以解密的形式。在 Gitee 中,你会生成一个公钥并将其上传到你的账户。公钥是公开的,任何人都可以访问。它用于验证你的身份并允许其他人加密数据,使其只有你的私钥才能解密。

私钥:私钥是与公钥配对的密钥,用于解密被公钥加密的数据。私钥是保密的,并且应该只有你本人知道。在 Gitee 中,你的私钥存储在你的本地计算机上,用于对你的身份进行验证和对数据进行解密

生成公钥并查看

        

在终端输入命令: ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"

                ed25519 为加密方式。

xxxxx@xxxxx.com 只是生成的 sshkey的名称,并不约束或要求具体命名为某个邮箱(建议用Gitee的邮箱)

                第一个回车:设置保存的位置(默认地址即可)

                第二个回车:设置密码(不设置即可)

                第三个回车:确认密码(不设置即可

        

非空仓库操作

        1.拉取仓库的数据
 

                1. 新建一个文件夹,并在当前文件夹打开终端(CMD);

                2. 拉取对应的数据到当前的文件中,输入如下命令

                        

# git clone SSH路径
git clone git@gitee.com:XXXXXX/test-cicd5.git

                

2.更新仓库的数据

常用的操作:

把全新的资料直接更新到仓库(Gitee)当中

把修改后的资料更新到仓库(Gitee)当中

总结:本地仓库必须有更新才能提交到仓库当中

操作步骤:

        1.首先进入到对应的仓库当中,如上 test-cicd5

        

cd test-cicd5

        2.新建一个文件或者文件夹在该目录下,然后输入如下命令

        

# 1. 将文件的更改添加到暂存区,. 代表提交当前文件夹下的所有内容
git add .
# 2. 用于将暂存区中的更改提交到版本历史记录中,并附加一条简短的提交消息
git commit -m "msg"
# 3. 本地代码库的提交推送(push)到远程代码库
git push <远程仓库名称> <分支名称>

                

 

假如有多个文件

        

空仓库操作

                操作步骤

                1. 新建文件夹并且进入到该目录
                2. 初始化仓库: git init

                3. 新建文件: touch 文件名 ,该命令Mac和Linux可用;Win手动右击新建文件。

                4. 添加文件: git add 文件名 ,只提交当中的具体文

                 5. 确认将暂存区中的更改提交到版本历史记录中,

                        并附加提交消息: git commit -m "first commit"

                6. 绑定远程仓库并且取别名为

             origin: git remote add origin git@gitee.com:XXXXXX/test-cicd2.git

                7. 提交到远程仓库: git push -u 远程仓库别名 "本地分支名称"

                例如

                

mkdir test-cicd2
cd test-cicd2
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin git@gitee.com:XXXXXX/test-cicd2.git
git push -u origin "master

多个人操作仓库的问题

                修改的不是同一个文件

                    直接拉取最新的代码即可

                修改同一文件         

        思路:线上的仓库有变动同时两个人修改是同一个文件,按照场景一的方式能够解决问题但             是如果代码量多就会比较复杂。

                操作步骤

               方法一: 当出现异常,直接: git pull 会把你线上的东西和本地东西进行合并;去进行

              取舍,正常提交即可

                方法二:

1. 使用 git branch 新建分支名 创建一个新分支并且默认指向当前的本地分支;

2. 通过 git log 查看日志,确定上次正常处理的 commit-id ,比如上个用户提交的 ; 按 q 退出日志查看;

3. 按照commit-id进行回滚: git reset --hard commit-id ;让当前的主分支回到一个正常提交的版本;

4. 让当前分支拉取最新代码: git pull ;

5. 合并分支: git merge 新建分支名 ,进行取舍;(将线上的分支和备份的test分支进行合并)

6. 取舍完毕之后按照的操作进行提交即可

删除分支

要删除新建的分支,确保您当前位于分支列表中的其他分支,而不是要删除的分支

使用 git branch -d 命令
 

相关文章:

CICD之Git版本管理及基本应用

CICD:持续集成,持续交付--让对应的资料,对应的项目流程更加规范--提高效率 CICD 有很多的工具 GIT就是其中之一 1.版本控制概念与环境搭建 GIT的概念: Git是一款分布式源代码管理工具(版本控制工具) ,一个协同的工具。 Git得其数据更像是一系列微型文件系统的快照。使用Git&am…...

Python作用域及其应用

Python的作用域规则决定了变量在代码中的可见性和访问性。全局作用域中定义的变量可以在整个程序中访问&#xff0c;而局部作用域中定义的变量则只能在其被创建的函数或代码块中访问。 全局作用域与局部作用域 全局作用域中的变量通常在程序的顶层定义&#xff0c;可以被整个…...

谷歌上架,应用被Google play下架之后,活跃用户会暴跌?这是为什么?

在Google play上架应用&#xff0c;开发者们最不想到看到就是应用被下架了。这意味着所有的努力都将付诸东流&#xff0c;因为有的应用一但被下架&#xff0c;活跃用户也随之嗖嗖地往下掉&#xff0c;这事儿可真不是闹着玩的&#xff0c;严重影响了收益&#xff01; 为什么你的…...

web安全渗透测试十大常规项(一):web渗透测试之Fastjson反序列化

渗透测试之Java反序列化 1. Fastjson反序列化1.1 FastJson反序列化链知识点1.2 FastJson反序列化链分析1.3.1 FastJson 1.2.24 利用链分析1.3.2 FastJson 1.2.25-1.2.47 CC链分析1.3.2.1、开启autoTypeSupport:1.2.25-1.2.411.3.2.2 fastjson-1.2.42 版本绕过1.3.2.3 fastjson…...

Unity 3D软件下载安装;Unity 3D游戏制作软件资源包获取!

Unity3D&#xff0c;它凭借强大的功能和灵活的特性&#xff0c;在游戏开发和互动内容创作领域发挥着举足轻重的作用。 作为一款顶尖的游戏引擎&#xff0c;Unity3D内置了先进的物理引擎——PhysX。这一物理引擎堪称业界翘楚&#xff0c;能够为开发者提供全方位、高精度的物理模…...

PyTorch之nn.Module与nn.functional用法区别

文章目录 1. nn.Module2. nn.functional2.1 基本用法2.2 常用函数 3. nn.Module 与 nn.functional3.1 主要区别3.2 具体样例&#xff1a;nn.ReLU() 与 F.relu() 参考资料 1. nn.Module 在PyTorch中&#xff0c;nn.Module 类扮演着核心角色&#xff0c;它是构建任何自定义神经网…...

2024.06.24 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 昂瑞微2025届校园招聘正式启动 校招 | 昂瑞微2025届校园招聘正式启动 2、实习 | 东风公司研发总院暑期实习生火爆招募中 实习 | 东风公司研发总院暑期实习生火爆招募中 3、实习…...

【C++】using namespace std 到底什么意思

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文作为 JohnKi 的学习笔记&#xff0c;引用了部分大佬的案例 &#x1f4e2;未来很长&a…...

基于ESP32 IDF的WebServer实现以及OTA固件升级实现记录(三)

经过前面两篇的前序铺垫&#xff0c;对webserver以及restful api架构有了大体了解后本篇描述下最终的ota实现的代码以及调试中遇到的诡异bug。 eps32的实际ota实现过程其实esp32官方都已经基本实现好了&#xff0c;我们要做到无非就是把要升级的固件搬运到对应ota flash分区里面…...

116-基于5VLX110T FPGA FMC接口功能验证6U CPCI平台

一、板卡概述 本板卡是Xilinx公司芯片V5系列芯片设计信号处理板卡。由一片Xilinx公司的XC5VLX110T-1FF1136 / XC5VSX95T-1FF1136 / XC5VFX70T-1FF1136芯片组成。FPGA接1片DDR2内存条 2GB&#xff0c;32MB Nor flash存储器&#xff0c;用于存储程序。外扩 SATA、PCI、PCI expres…...

Android - Json/Gson

Json数据解析 json对象&#xff1a;花括号开头和结尾&#xff0c;中间是键值对形式————”属性”:属性值”” json数组&#xff1a;中括号里放置 json 数组&#xff0c;里面是多个json对象或者数字等 JSONObject 利用 JSONObject 解析 1.创建 JSONObject 对象&#xff0c;传…...

盲信号处理的发展现状

盲源分离技术最早在上个世纪中期提出&#xff0c;在1991年Herault和Jutten提出基于反馈神经网络的盲源分离方法&#xff0c;但该方法缺乏理论基础&#xff0c;后来Tong和Liu分析了盲源分离问题的可辨识性和不确定性&#xff0c;Cardoso于1993年提出了基于高阶统计的联合对角化盲…...

二轴机器人装箱机:重塑物流效率,精准灵活,引领未来装箱新潮流

在现代化物流领域&#xff0c;高效、精准与灵活性无疑是各大企业追求的核心目标。而在这个日益追求自动化的时代&#xff0c;二轴机器人装箱机凭借其较佳的性能和出色的表现&#xff0c;正逐渐成为装箱作业的得力助手&#xff0c;引领着未来装箱新潮流。 一、高效&#xff1a;重…...

使用python做飞机大战

代码地址: 点击跳转...

Python面向对象编程:派生

本套课在线学习视频&#xff08;网盘地址&#xff0c;保存到网盘即可免费观看&#xff09;&#xff1a; ​​https://pan.quark.cn/s/69d1cc25d4ba​​ 面向对象编程&#xff08;OOP&#xff09;是一种编程范式&#xff0c;它通过将数据和操作数据的方法封装在一起&#xff0…...

华为仓颉编程语言

目录 一、引言 二、仓颉编程语言概述 三、技术特征 四、应用场景 五、社区支持 六、结论与展望 一、引言 随着信息技术的快速发展&#xff0c;编程语言作为软件开发的核心工具&#xff0c;其重要性日益凸显。近年来&#xff0c;华为公司投入大量研发资源&#xff0c;成功…...

【微信小程序开发实战项目】——如何制作一个属于自己的花店微信小程序(2)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…...

解锁数据资产的无限潜能:深入探索创新的数据分析技术,挖掘其在实际应用场景中的广阔价值,助力企业发掘数据背后的深层信息,实现业务的持续增长与创新

目录 一、引言 二、创新数据分析技术的发展 1、大数据分析技术 2、人工智能与机器学习 3、可视化分析技术 三、创新数据分析技术在实际应用场景中的价值 1、市场洞察与竞争分析 2、客户细分与个性化营销 3、业务流程优化与风险管理 4、产品创新与研发 四、案例分析 …...

Bridging nonnull in Objective-C to Swift: Is It Safe?

Bridging nonnull in Objective-C to Swift: Is It Safe? In the world of iOS development, bridging between Objective-C and Swift is a common practice, especially for legacy codebases (遗留代码库) or when integrating (集成) third-party libraries. One importa…...

算法训练 | 图论Part1 | 98.所有可达路径

目录 98.所有可达路径 深度搜索法 98.所有可达路径 题目链接&#xff1a;98. 所有可达路径 文章讲解&#xff1a;代码随想录 深度搜索法 代码一&#xff1a;邻接矩阵写法 #include <iostream> #include <vector> using namespace std; vector<vector<…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...