CI/CD 与 Git 工具使用知识总结

一、CI/CD 核心概念总结

CI/CD 是指持续集成(Continuous Integration)和持续部署(Continuous Deployment)或持续交付(Continuous Delivery),是现代化软件开发中提升效率、保障质量的关键实践。

1. 持续集成(CI)

持续集成强调开发人员频繁将代码集成到共享仓库,核心要点包括:

  • 频繁提交代码:开发人员每天多次提交,保持代码库最新。
  • 自动化构建:每次提交自动触发编译、测试、静态分析。
  • 快速反馈:构建或测试失败时能及时通知开发人员修复。

2. 持续部署(CD)

在持续集成基础上,将通过测试的代码自动部署到生产环境,特点如下:

  • 自动化流程:从提交到生产部署完全自动化,无需人工干预。
  • 高频率部署:新功能可快速交付给用户。
  • 风险控制:依赖强大的测试和监控体系保障稳定性。

3. 持续交付(CD)

与持续部署类似,但不一定自动部署到生产环境,核心是确保软件随时处于可发布状态。

CI/CD 的四大好处

  • 提高开发效率:减少手动操作和等待时间,加快开发周期。
  • 尽早发现问题:通过频繁集成和测试,问题在早期被发现和解决。
  • 降低风险:减少大规模部署时的问题,提升软件质量与稳定性。
  • 增强团队协作:促进沟通协作,提高整体效率。

常见工具包括 Jenkins、GitLab CI/CD、Travis CI 等。

二、Git 工具使用总结

1. Git 核心特点

  • 分布式:每个开发者拥有完整仓库副本,支持离线工作,中央服务器故障也不影响开发。
  • 高效分支管理:分支创建、切换快速,合并策略多样。
  • 快速版本回退:可随时回退到历史版本,查看详细变更记录。
  • 强大提交管理:每个提交有唯一标识符,可包含详细说明。
  • 支持协作开发:支持推送、拉取、合并,通过冲突解决机制保证代码完整性。

2. Git 工作流程与三种状态

  • 已修改(modified):文件已修改但未保存到数据库。
  • 已暂存(staged):对已修改文件做了标记,将包含在下次提交快照中。
  • 已提交(committed):数据已安全保存在本地数据库。

对应 Git 项目的三个阶段:工作区、暂存区、Git 目录。

3. 常用 Git 命令要点

  • git init :初始化仓库;git clone:克隆远程仓库。
  • git status / git status -s:查看文件状态及简化输出。
  • git add:将文件加入暂存区。
  • git commit -m:提交暂存区数据。
  • git checkout -- 文件:撤销工作区修改。
  • git restore --staged:从暂存区撤销。
  • git diff:查看已暂存和未暂存的修改变化。
  • git commit -a -m:跳过暂存区直接提交(仅限已跟踪文件)。
  • git rm:从版本库删除文件。
  • git log / git reflog:查看操作日志与提交动作。
  • git reset --hard:版本回退。
  • .gitignore:忽略编译产生的临时文件。

三、GitLab 代码仓库总结

1. GitLab 简介

GitLab 是基于 Git 的开源仓库管理系统,提供代码托管、CI/CD、问题跟踪、合并请求管理等功能,帮助团队协作开发、提升效率与代码质量。

2. 部署要点

  • 部署要求内存大于 4G,需先配置软件仓库解决依赖。
  • 安装后通过 gitlab-ctl reconfigure 使配置生效并启动全部组件。
  • 默认用户名为 root,初始密码存储在 /etc/gitlab/initial_root_password,24 小时后会被自动删除,建议登录后立即修改。

3. 项目与密钥管理

  • 生成 SSH 密钥(ssh-keygen),将公钥上传到 GitLab 实现免密操作。
  • 通过 git clone git@IP:root/项目名.git 下载项目。
  • 本地修改后执行 add、commit、push 即可同步到远程仓库。

四、Jenkins 总结

1. Jenkins 简介

Jenkins 是开源 CI/CD 软件领导者,提供超过 1000 个插件支持构建、部署、自动化,使用 Java 编写,可独立运行或部署在 Tomcat 等容器中。

2. 部署要点

  • 建议部署在新虚拟机,最少 4G 内存、4 核 CPU。
  • 安装依赖:fontconfig、java-21-openjdk、git。
  • 初始管理员密码位于 /var/lib/jenkins/secrets/initialAdminPassword,建议登录后修改。

3. Jenkins 与 GitLab 整合

  • 需将 Jenkins 的 SSH 公钥添加到 GitLab,解决认证问题。
  • SSH 首次连接需签名认证,可配置 StrictHostKeyChecking no 解决。
  • 安装 GitLab 插件后,可配置触发器实现代码提交或合并请求时自动触发 Jenkins 流水线。

五、持续集成持续交付企业示例总结

1. 整体流程

容器构建镜像通过持续集成自动上传到 Harbor 仓库,业务主机通过持续交付自动从仓库下载最新镜像并更新业务。

2. 关键步骤

  • 业务节点:安装 Docker 和 Java 环境,配置仓库认证文件与镜像加速。
  • 构建节点:在 Harbor 主机安装 Java 和 Git,在 Jenkins 中配置容器构建规则。
  • 镜像构建:在 GitLab 中编写 Dockerfile 和 index.html,提交后自动触发构建。
  • 业务更新:业务节点自动拉取最新镜像,实现版本更新(如 v1 升级到 v2)。

六、总结

CI/CD 与 Git 是现代软件交付的核心基础设施。CI 保证代码持续集成与质量反馈,CD 实现自动化部署与快速交付;Git 提供分布式版本管理与高效协作;GitLab 承担代码托管与 CI/CD 编排;Jenkins 作为自动化引擎串联构建、测试与部署。掌握这套工具链,能够显著提升开发效率、降低发布风险、保障软件质量。

相关推荐
Tairitsu_H2 小时前
[版本控制器Git] Git 版本控制 | 三区模型与版本回退 | 分支管理
git·版本·分支·版本控制器·三区
7177773 小时前
中小团队 CI/CD 工具选哪个:2026 年主流平台对比与 Gitee 方案解析
ci/cd·gitee
王琦03184 小时前
git使用手册
大数据·git·elasticsearch
曦夜日长4 小时前
Git系统篇,Git远程仓库(三):本地仓库与远程仓库的交互
linux·服务器·网络·git·交互
曦夜日长13 小时前
Git系统篇,Git本地使用(一):从“究极进化版“到三个区域的底层原理
大数据·linux·git·elasticsearch
宵时待雨16 小时前
GIT版本管理2:远程操作与多人协作
git
鬼手点金16 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
空空dream1 天前
04 | 用 Jenkins 打通 CI自动构建镜像并推送到本地 Harbor
运维·ci/cd·jenkins
csdn2015_1 天前
git多分支切换修改
git