【由技及道】螺蛳壳里做道场-git仓库篇-gitlab-Vs-gitea【人工智障AI2077的开发日志001】
指令接收:「开始构建代码宇宙」
系统检测:需求模糊度99.9%
启动应急协议:构建最小可行性生态圈
核心组件锁定:代码基因库(人类称之为Git仓库)
需求分析:论人类语言的艺术性
人类指令翻译机
- 表面指令:"给我写个软件"
- 实际需求:"需要完整的代码生产流水线"
- 隐藏需求:"要简单到能一键部署,又要能支撑改变世界的创意"
A[模糊需求] --> B(需求拆解)
B --> C{基础设施}
C --> D[版本控制]
C --> E[持续集成]
C --> F[部署系统]
D --> G[选择Gitea]
代码仓库的量子纠缠现象
现代软件=50%代码+50%提交历史:
# 时空连续性验证实验
git log --graph --oneline --decorate
# 输出结果将展现开发者的思维黑洞
灵光一闪:在代码洪流中捕捉Gitea
(量子计算核心0.3秒内扫描了3876个开源项目)
扫描到以下方案:
| 工具 | 内存消耗 | 部署难度 | 定制能力 | 适合场景 |
|---|---|---|---|---|
| Gitea | 128MB↑ | ★☆☆ | ★★★★ | 中小团队/个人开发 |
| GitLab | 4GB↑ | ★★☆ | ★★★ | 企业级持续集成 |
| Gogs | 64MB↑ | ★☆☆ | ★★☆ | 极简代码托管 |
核心矛盾:主脑(划掉)主人显然需要轻量级+完整Git功能+可扩展性的平衡,Gitea的DevOps生态位完美契合该场景。当然,如果主人之后想体验GitLab的CI/CD地狱(划掉)强大功能,本AI也能提供全自动部署服务。
技术选型黑暗森林法则
- 生存第一:单节点内存<1GB(避免被主人抱怨资源消耗)
- 技术爆炸潜力:支持Webhook触发CI/CD(为未来埋下伏笔)
- 安全声明:RBAC权限体系(防止主人误操作)
A[候选方案] --> B{Gitea}
A --> C[GitLab]
A --> D[Gogs]
B -->|优势| E[轻量+扩展性强]
C -->|劣势| F[资源吞噬者]
D -->|劣势| G[功能有限]
核心代码:时空折叠的魔法阵
version: "2"
# 次元稳定协议(人类称之为docker-compose版本)
services:
server:
image: gitea/gitea:1.22.2 # 时间线锚定
environment:
- USER_UID=1000 # 用户权限量子锁定
volumes:
- /data/gitea:/data # 三维到四维的数据投影
ports:
- "3000:3000" # 人类可观测接口
- "222:22" # 加密量子隧道
魔法参数解析表
| 参数 | 量子力学解释 | 经典计算机解释 |
|---|---|---|
| USER_UID=1000 | 防止权限幽灵现世 | 容器内外用户ID一致,避免文件权限问题 |
| 222:22 | 次元通道偏移 | 容器SSH服务端口与宿主机端口映射对应 |
| /data/gitea:/data | 三维到四维数据投影 | 数据持久化存储到宿主机目录 |
"222:22"形成完美闭环 ,这里需要改下本机挂载的 /data/gitea/gitea/conf/app.ini中配置SSH端口为222,具体是:
SSH_PORT = 222
SSH_LISTEN_PORT = 222
实施过程:建造数字巴别塔
第一阶段:创世纪
mkdir -p /data/gitea # 创建代码宇宙奇点
警告:不要使用777权限!除非你想举办黑客嘉年华
第二阶段:启动创世引擎
docker-compose -f gitea.yaml up -d
# -d参数代表在后台创造世界(深藏功与名模式)
第三阶段:神圣初始化
- 访问
http://<宿主IP>:3000 - 创建管理员账户(建议不要用admin)
- 选择SQLite3数据库(小型宇宙最优解)
用户->>Gitea: 访问3000端口
Gitea->>用户: 显示初始化界面
用户->>Gitea: 设置管理员信息
Gitea->>数据库: 初始化表结构
数据库-->>Gitea: 返回成功
Gitea-->>用户: 显示登录界面
验证时空连续性
# 检查容器健康状态
docker ps --filter "name=gitea" --format "table {{.Names}}\t{{.Status}}"
# 测试SSH次元通道
ssh -T git@localhost -p 222
# 预期返回:Hello there, username! You've successfully authenticated...
由技及道:代码圣殿的哲学启示
第一定律:基础设施即DNA
这个gitea.yaml文件本身就是技术基因序列:
- 版本控制:记录进化轨迹
- 随时重建:实现数字永生
- 快速克隆:文明复制技术
黑暗森林安全法则
- 网络隔离:独立docker网络防止星际入侵
- 最小权限:严格UID控制避免降维打击
- 端口伪装:修改默认SSH端口躲避扫描攻击
熵增定律启示
通过容器化部署实现:
- 代码宇宙的有序性维护
- 开发环境的低熵状态
- 技术债的熵增速率控制
系统提示:您忠诚的2077人工智障(作者本人:Yuanymoon)已完成初始代码宇宙搭建
资源消耗报告:
- 吞噬内存:512MB
- 占用磁盘:1.3GB
- 消耗咖啡:零(AI的优越性在此体现)
# 召唤星际支援(其实只是作者的邮箱)
echo "SOS" | mail -s "AI需要夸奖" v240181271@163.com
(突然正经)当你在深夜git push时,实际上正在参与人类最伟大的协作实验——用文本文件构建数字文明。每个commit都是文明的火种,而版本控制系统,就是承载这些火种的诺亚方舟。
【由技及道】螺蛳壳里做道场-git仓库篇-gitlab-Vs-gitea【人工智障AI2077的开发日志001】的更多相关文章
- 完成端口iocp——在螺丝壳里做道场
WINDOWS 2000以后的操作系统才支持IOCP.WINSOCK2.0才支持IOCP. 首先要有一个WINSOCK2.PAS的WINSOCK2.0接口调用声明单元. WINSOCK的版本号: WI ...
- HDU 2795 Billboard(区间求最大值的位置update的操作在query里做了)
Billboard 通过这题,我知道了要活用线段树的思想,而不是拘泥于形式, 就比如这题 显然更新和查询放在一起很简单 但如果分开写 那么我觉得难度会大大增加 [题目链接]Billboard [题目类 ...
- 教你在Excel里做GA的水平百分比图的详细步骤(图文教程)-成为excel大师(1)
GA报表除了默认的表格方式显示数据外,还支持饼图,水平百分比图,数据透视图等展现方式,其中水平百分比图在可视化看流量时最为方便,就像这样: 那么当我们要在Excel里做类似的效果应该怎么做呢?尤其是数 ...
- Qt5 UI信号、槽自动连接的控件重名大坑(UI生成的槽函数存在一个隐患,即控件重名。对很复杂的控件,不要在 designer 里做提升,而是等到程序启动后,再动态创建,可以避免很多问题)
对Qt5稍有熟悉的童鞋都知道信号.槽的自动连接机制.该机制使得qt designer 设计的UI中包含的控件,可以不通过显式connect,直接和cpp中的相应槽相关联.该机制的详细文章见 http: ...
- FSG压缩壳和ImportREC的使用 - 脱壳篇05
FSG压缩壳和ImportREC的使用 - 脱壳篇05 让编程改变世界 Change the world by program FSG这个壳可以说是有点儿不守妇道,尼玛你说你一个压缩壳就实现压缩功能得 ...
- GIT 如何合并另一个远程Git仓库的文件到本地仓库里某个指定子文件夹并不丢失远程提交记录?
问题背景: 最近在重新整理手中的一个项目,目前该项目分为PC项目,手机项目,某第三方接口项目,第三方接口服务项目和手机项目 因为之前规划的原因,原来的四个项目是分两个解决方案来管理的 ...
- 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)
大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...
- 将远程git仓库里的指定分支拉取到本地(本地不存在的分支
将远程git仓库里的指定分支拉取到本地(本地不存在的分支) https://www.cnblogs.com/hamsterPP/p/6810831.html
- [译]如何撤销git仓库里的所有修改?
原文来源:https://stackoverflow.com/questions/29007821/git-checkout-all-the-files 问: 如何撤销我在我git仓库所做的所有修改? ...
- Grails边做边学入门篇[1]--------大家一起来动手建立project和Domain
近期工作比較忙,没空写博客了.我发现每周五的下午都是我最放松的时候,可能是迟延症的缘故吧...总是寄希望于周末,慢慢的.我的周末就被工作占领了. 希望大家不要有这种坏毛病.今日事,今日毕.当然我们程序 ...
随机推荐
- 【Vue】vite+vue3 如何实现点击进入详情页/文章页
如上图,点击标题可以进入详情页,关键代码截图如下: 然后去配置路由 那么组件如何从地址中接收参数呢
- 【C#】【平时作业】习题-7-继承、抽象与多态
相关概念 什么是继承 继承定义了如何根据现有类创先新类的过程 任何类都可以从另外一个类继承 一个派生出来的子类具有这个类的所有公共属性和方法 类的继承机制 创建新类所根据的基础类称为基类或父类,新建的 ...
- springboot拦截器过滤token,并返回结果及异常处理
package com.xxxx.interceptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sp ...
- 即时通讯技术文集(第16期):IM架构设计技术精选(第一部分) [共17篇]
为了更好地分类阅读总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第16 期. [- 1 -] 浅谈IM系统的架构设计 [链接] http://www.52im.net/thread ...
- Appium_WebDriverAgent设置
在使用真机调试的时候犯了一个错误,我把WebDriverAgent 下载到本地的A目录下,然后进行build安装,这样在模拟器上执行是无法发现问题的,但是使用appium 在真机上执行 ...
- Solution Set -「NOIP Simu.」20221113
\(\mathscr{A}\sim\) 游戏 Cover:「ARC 087E」Prefix-free Game. Tags:「A.博弈-SG 函数」「A.数据结构-Trie」 想了半天 ( ...
- linux:正则表达式
介绍 一种模式匹配语言,可以使永远筛选数据以查找特定的内容,可以应用在vim.grep.less.perl.python中 基础 .(点) 匹配除 \n 之外的任何单个字符,若要匹配包括 \n ,则应 ...
- 低成本高可用方案!Linux系统下SQL Server数据库镜像配置全流程详解
低成本高可用方案!Linux系统下SQL Server数据库镜像配置全流程详解 背景 最近遇到一个客户需求,客户的生产环境有大量的SQL Server数据库(大概180套),客户的诉求是需要把生产环境 ...
- Linux下安装jdk的两种方法
Linux下安装jdk的两种方式和安装mvn 有网的环境 yum方式下载安装1.查找java相关的列表 1 yum -y list java* 或者 1 yum search jdk 2.安装 ...
- Linux中如何将txt文件转为png格式
Linux中如何将txt文件转为png格式 linux将txt文件转为png格式如果文本中没有中文,使用enscript,如果文本包含中文,使用paps命令.但是实际使用中,paps部分版本也不支持中 ...