GitLab配置与git集成实践

文章目录

前言

本文主要讲了GitLab配置与git集成实践

一、持续集成及Jenkins介绍

软件开发生命周期(Software Development Life Cycle,SDLC)是集合了计划、开发、测试和部署过程的完整流程:
1、对项目进行需求分析
2、设计方案解决需求
3、开发进行代码开发,将方案进行实战
4、对开发的软件进行测试,包括功能、代码、压力等测试
5、后续持续对产品进行更新迭代。

需求分析:根据项目需求进行可行性分析,收集信息,制定项目目标和预算
设计:设计系统架构和功能,创建项目计划
实现:开发人员根据任务进行代码开发
测试:进行功能测试、代码测试、压力测试等
进化:产品持续改进、维护和功能优化

1.3 持续集成概念

持续集成(Continuous Integration)指的是频繁地将代码集成到主干,核心措施是代码集成前必须通
过自动化测试。
持续集成流程:
1.提交:开发者向代码仓库提交代码
2.测试:代码仓库触发自动化测试
3.构建:将源码转换为可运行的实际代码
4.测试:进行第二轮全面测试
5.部署:将版本部署到生产服务器
6.回滚:出现问题时可快速回滚
持续集成组成要素:
自动构建过程
代码存储库(GitLab/SVN)
持续集成服务器(Jenkins)

1.4 Jenkins介绍

Jenkins是一款流行的开源持续集成工具,具有以下特征:
1、开源的Java语言开发
2、易于安装部署配置
3、支持消息通知和测试报告
4、分布式构建能力
5、丰富的插件支持

二、GitLab配置与git集成实践

2.1 GitLab概述

GitLab是一个用于仓库管理系统的开源项目,基于Git作为代码管理工具,具有以下特点:
1、开源免费(基于MIT协议)
2、可部署到自己的服务器
3、适合团队内部协作开发
4、提供完整的代码管理功能

2.2 部署GitLab服务器

环境要求:
安装docker
虚拟机至少4G内存
CentOS 7/8系统
10.0.0.11
关闭网络增强服务与防火墙

在这里插入图片描述

2.3 安装Gitlab环境

这里是用容器进行安装
第一步 拉取Gitlab镜像
docker pull beginor/gitlab-ce ——————————拉取gitlab镜像

在这里插入图片描述


第二步 创建容器并且将gitlab的配置文件目录、日志目录、数据目录进行挂载
mkdir -p /data/gitlab/{etc,log,data} ————————创建挂载点
chmod 777 /data/gitlab/{etc,log,data} ——————————给挂载点进行加权,方便之后的修改或查看

在这里插入图片描述


docker run -itd --name=gitlab --restart=always --privileged=true -p 8443:443 -p 88:80 -p 222:22 -v /data/gitlab/etc:/etc/gitlab -v /data/gitlab/log:/var/log/gitlab -v /data/a:/var/opt/gitlab beginor/gitlab-ce:latest ————————————————创建并开启容器,并进行挂载,映射端口

在这里插入图片描述

–restart=always:退出容器时自动删除容器
-p 8443:443:https映射
-p 88:80 :http映射
-p 222:22:ssh映射,用于克隆代码
–privileged=true:给容器赋权

第三步 修改配置文件(尽量在宿主机的挂载点改)
vim /data/gitlab/etc/gitlab.rb ————————————————编辑gitlab配置文件

找不到位置的可以用sed命令锁定修改
sed -i "/external_url ‘GENERATED_EXTERNAL_URL’/a external_url\t’http://10.0.0.11:88’ " /data/gitlab/etc/gitlab.rb ——————————修改配置文件中gitlab监听地址

sed -i "/gitlab_ssh_host/a gitlab_rails[‘gitlab_ssh_host’]= ‘10.0.0.11’ " /data/gitlab/etc/gitlab.rb
—————————— 修改gitlab远程登录的主机

sed -i “/gitlab_shell_ssh_port/a gitlab_rails[‘gitlab_shell_ssh_port’] = 222” /data/gitlab/etc/gitlab.rb
——————————修改gitlab远程登录的端口

在这里插入图片描述


第四步 重启容器尝试访问10.0.0.11:88并创建新密码(这里已经创建了)

在这里插入图片描述


第五步 创建一个群组 群组名字为yjs

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


第六步 创建该群组负责的项目 项目名字为yjs1023

在这里插入图片描述


第七步 创建ssh密钥(在宿主机上)
创建密钥对
ssh-keygen -t rsa -C “[email protected]

第八步 将密钥给gitlab
cat /root/.ssh/id_rsa.pub ——————————查看公钥

在这里插入图片描述

将公钥给gitlab

在这里插入图片描述

三、上传 若依项目 到 gitlab

3.1 下载ruoyi项目

通过git命令在gitte中下载一个ruoyi项目

在这里插入图片描述

3.2 在Ruoyi目录初始化一个目录,为本地仓库添加一个远程仓库地址,名称为 origin。

git init
git remote add oriing yjs-1023 ssh://[email protected]:222/yjs/yjs-1023.git ——————————为本地仓库添加一个远程仓库地址,名称为 origin。(注意这里是ssh方式)

在这里插入图片描述

3.3 将当前目录所有文件或目录打包在远程仓库中

git add .

3.4 提交

git commit -m “Initial commit”

3.5 上传

git push -u origin master ————————将远程仓库origin中的文件上传

在这里插入图片描述


在这里插入图片描述

总结

本文主要讲了GitLab配置与git集成实践,谢谢观看😜

Read more

终于有人把Openclaw团队协作版讲明白了!Clawith 开源方案从原理到部署全拆解

终于有人把Openclaw团队协作版讲明白了!Clawith 开源方案从原理到部署全拆解

Clawith 深度拆解:如何用开源方案搭建多 Agent 团队协作平台 快速摘要 Clawith 是一个基于 OpenClaw 生态的开源多智能体协作平台,它解决了 OpenClaw 在团队场景下「Agent 之间互不认识、缺乏组织架构、没有权限管控」的三大核心痛点。 通过引入 Aware 自主感知系统、数字员工身份体系和广场知识沉淀机制,Clawith 让多个 AI Agent 具备了真正的团队协作能力。项目采用 Apache 2.0 开源协议,支持 Docker 一键部署,最低 2 核 CPU + 4GB 内存即可运行。往下看,有从底层原理到实际部署的完整拆解。 一、从 OpenClaw 到 Clawith:为什么需要「团队版」

By Ne0inhk
remote: Invalid username or token. Password authentication is not supported for Git operations

remote: Invalid username or token. Password authentication is not supported for Git operations

remote: Invalid username or token. Password authentication is not supported for Git operations. fatal: Authentication failed for… 该文章解决在新系统中进行 git 操作时,第一次的登陆问题,由于Github不再支持使用账号密码进行 Git https 推送,可以采用 ssh 密钥的方式进行长期的推送 1.生成SSH key ssh-keygen -t ed25519 -C "[email protected]" 这里的-t 表示要生成的密钥类型,这里生成的类型为ed25519,是一种椭圆曲线算法,比传统的RSA更加安全、密钥更短,并且速度更快 2.将

By Ne0inhk
Flutter for OpenHarmony: Flutter 三方库 husky 守卫鸿蒙项目的 Git 提交规范(前端工程化必备)

Flutter for OpenHarmony: Flutter 三方库 husky 守卫鸿蒙项目的 Git 提交规范(前端工程化必备)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在 OpenHarmony 项目的团队协作中,我们最怕遇到“带病提交”的代码。比如:某位开发者提交的代码没经过 dart format 美化、或是包含明显的 lint 警告,甚至导致整个鸿蒙工程编译失败。如果在 CI(持续集成)阶段才发现,修复成本就太高了。 husky 是从前端生态圈引进的 Git Hooks 管理神器。它能让你极简地配置 Git 的各个钩子(如 pre-commit),在代码真正提交到远端(AtomGit)之前,强制执行格式化或单元测试,确保入库的代码永远是高质量的。 一、Git Hook 工作流模型 husky 在本地提交阶段建立了一道自动化的“安检门”。 通过 失败

By Ne0inhk