欢迎光临我的个人博客查看最新文章:river's blog

在当今的软件开发世界中,代码托管平台是必不可少的工具。而对于寻求自主控制和数据隐私的团队与开发者来说,Gitea提供了一个完美的解决方案。

1、 Gitea简介

Gitea(发音为ɡɪˈtiː)是一款采用Go语言编写的轻量级自托管Git服务,支持运行在Linux、macOS、Windows乃至树莓派等多种平台上。它与GitHub、GitLab等功能类似,提供了代码托管、团队协作、问题跟踪、代码审查等开发者所需的核心功能。

Gitea最初是从Gogs项目分支而来,其名称是“Gi”(表示Git)和“tea”(茶)的组合,意为“一杯茶的Git服务”,形象地体现了其轻量级和易用性的特点。

官网:Gitea - 轻量级全功能 DevSecOps 平台

1.1 主要特性

Gitea具备以下突出特性:

  • 轻量快速:得益于Go语言的高效,Gitea启动速度快,资源占用极低,甚至可以在树莓派等资源受限的设备上流畅运行。

  • 功能丰富:提供Pull Request、Issue跟踪、Wiki、Webhook、代码审查等现代代码托管平台的核心功能。

  • 易于部署:通常只需一个二进制文件即可完成安装,开箱即用。

  • 完全开源:采用MIT许可证,社区驱动,透明开放。

  • 跨平台支持:支持Linux、macOS、Windows及ARM架构。

  • CI/CD集成:通过Gitea Actions支持CI/CD功能,兼容GitHub Actions的YAML格式工作流。

  • 多包管理支持:支持超过20种不同类型的公共或私有软件包管理。

1.2 Gitea与GitLab的简要对比

特性

Gitea

GitLab

资源占用

(轻量级,1核2G内存即可运行)

高(建议至少4核8G内存)

功能焦点

代码托管与协作(核心功能)

全栈DevOps(功能全面)

部署维护

简单(依赖少,升级方便)

相对复杂(需较多技术投入)

适用场景

个人开发者、中小团队、资源有限环境

大型团队、企业,需要全流程DevOps

Gitea非常适合小型团队自托管个人项目管理以及教育或实验室环境,它是一个低成本且能有效保护代码私密性的开源解决方案。

2、安装部署

2.1 安装准备

在安装Gitea之前,需要安装配置数据库,此处以MySQL为例。

创建MySQL用户及数据库:

# 创建用户 gitea
CREATE USER 'gitea' IDENTIFIED BY 'gitea';
# 创建数据库giteadb
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
# 将数据库上的所有权限授予gitea用户
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';
FLUSH PRIVILEGES;

2.2 MacOS安装

Gitea提供了多种安装方式,以下介绍两种最常用的方法:二进制文件安装和Docker安装。

以MacOS为例:

# 安装
brew install gitea# 启动服务 
brew services start gitea

2.3 Docker安装

创建docker-compose.yaml文件:

version: "3"services:server:image: gitea/gitea:latestcontainer_name: gitearestart: alwaysenvironment:- GITEA__database__DB_TYPE=mysql- GITEA__database__HOST=db:3306- GITEA__database__NAME=giteadb- GITEA__database__USER=gitea- GITEA__database__PASSWD=giteavolumes:- /data/gitea:/data- /etc/timezone:/etc/timezone:ro- /etc/localtime:/etc/localtime:roports:- "3000:3000"- "222:22"depends_on:- dbdb:image: mysql:8.0restart: alwaysenvironment:MYSQL_ROOT_PASSWORD: giteaMYSQL_USER: giteaMYSQL_PASSWORD: giteaMYSQL_DATABASE: giteadbvolumes:- /data/mysql:/var/lib/mysql

在包含docker-compose.yaml文件的目录下运行:

docker-compose up -d

安装部署具体可参考:安装 | Gitea Documentation

3、 初始化及基本使用

安装完成并且服务启动后,需要进行初始配置才能使用Gitea。

通过Web界面完成安装
在浏览器中访问服务器的IP地址或域名(默认端口3000),例如http://your-server-ip:3000。你将看到Gitea的初始化安装界面

完成初始配置后,进入首页

Gitea安装配置完成后,你就可以开始使用了:

  1. 创建仓库:登录后,点击页面右上角的“+”号,选择“新建仓库”,填写仓库名称、描述并选择可见性(公开或私有)。

  2. 管理团队:在组织或仓库的设置中,可以添加团队成员并分配不同的权限(如只读、读写、管理员)。

  3. 使用Pull Request:开发者可以Fork仓库或创建分支进行开发,然后通过Pull Request请求合并代码,进行代码审查。

  4. 问题跟踪:使用Issues功能来跟踪Bug、提出新功能想法或管理任务。

  5. 配置SSH密钥:在“用户设置” -> “SSH密钥”中添加你的公钥,以便通过SSH协议与仓库交互。

创建仓库

仓库详情

然后就可以使用git命令进行操作了

如克隆仓库到本地

git clone http://127.0.0.1:3000/river106/test-project.git

更多功能,大家可自行安装探索~

4、 总结

Gitea以其轻量级、资源占用低、部署简单的特点,成为了自托管Git服务的优秀选择。它特别适合个人开发者、中小型团队以及任何希望完全控制自己代码数据的用户。

通过本文介绍的二进制或Docker方式,你可以在短时间内快速搭建起一个功能完善的代码托管平台,享受类似GitHub的开发协作体验,同时保证数据的私有性和安全性。

无论是为了摆脱对第三方平台的依赖,还是为了在内网搭建高效的协作环境,Gitea都是一杯值得你细细品味的“好茶”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/95811.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/95811.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/95811.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习-----简单入门卷积神经网络CNN的全流程

(一)卷积神经网络(CNN)的核心思想传统全连接网络的缺陷图像平铺展开后,旋转或位置变化会导致输入差异大,难以识别举例:手写数字“8”在不同位置或旋转后的识别困难(图像在计算机中是…

Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征选择 - 单变量特征选择 SelectKBest - 选择Top K个特征

锋哥原创的Scikit-learn Python机器学习视频教程: 2026版 Scikit-learn Python机器学习 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 课程介绍 本课程主要讲解基于Scikit-learn的Python机器学习知识,包括机器学习概述,特征工程(数据…

Datawhale AI夏令营复盘[特殊字符]:我如何用一个Prompt,在Coze Space上“画”出一个商业级网页?

文章摘要 本文详细记录了我在Datawhale AI夏令营期间,如何另辟蹊径,使用Coze(扣子空间)和精心设计的Prompt,从零开始构建一个专业的“智能SEO Agent”产品网页的完整过程。文章将完整展示我编写的“万字”级Prompt&…

SVN和Git两种版本管理系统对比

一、SVN(Subversion)简介SVN是一种集中式版本控制系统。它有一个中心仓库(repository),所有的代码变更都记录在这个中心仓库中。每个开发者从中心仓库检出(checkout)代码到本地工作副本&#xf…

【机器学习】综合实训(一)

项目一 鸢尾花分类该项目需要下载scikit-learn库,下载指令如下:pip install scikit-learn快速入门示例:鸢尾花分类# 导入必要模块 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklea…

vulhub通关笔记1—docker unauthorized-rce

1.docker unauthorized-rce 基本情况 docker swarm是一个将docker集群变成单一虚拟的docker host工具,使用标准的Docker API,能够方便docker集群的管理和扩展,由docker官方提供: 需要在每台机器上安装docker,并且运行…

zotero扩容

最近出差,想要把本地的主机上的文件同步到笔记本,发现zotero不够用,然后寻找了一些zotero扩容的方法,这里记录一下,方便以后查阅。 zotero扩容创建账户登录账户进一步扩容设置Apps Connection设置zoterozotero自带同步…

Kafka基础理论

Kafka概述 kafka是一个分布式的基于发布/订阅模式的消息队列,主要用于大数据实时处理领域。kafka采取了发布/订阅模式,消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接受感兴趣的消息。…

苍穹外卖项目实战(day-5完整版)-记录实战教程及问题的解决方法

Redis基本操作及下载安装包(Redis及可视化工具),都在我的上一篇文章:Redis基本知识及简单操作,这里不再赘述 店铺营业状态修改功能 (1)需求分析与设计 (2)SpringDataRe…

第R8周:RNN实现阿尔兹海默病诊断

数据集包含2149名患者的广泛健康信息,每名缓则的ID范围从4751到6900不等,该数据集包含人口统计详细信息,生活方式因素、病史、临床测量、认知和功能评估、症状以及阿尔兹海默症的诊断。 一、准备工作 1、硬件准备 import numpy as np import …

MySQL复制技术的发展历程

在互联网应用不断发展的二十多年里,MySQL 一直是最广泛使用的开源关系型数据库之一。它凭借开源、轻量、灵活的优势,支撑了无数网站、移动应用和企业系统。支撑 MySQL 长期发展的关键之一,就是 复制(Replication)技术。…

C++从字符串中移除前导零

该程序用于去除字符串开头的零字符。当输入"0000123456"时,程序会输出"123456"。核心函数removeZero()通过while循环找到第一个非零字符的位置,然后使用erase()方法删除前面的所有零。主函数读取输入字符串并调用该函数处理。程序简…

【面试题】C++系列(一)

本专栏文章持续更新,新增内容使用蓝色表示。C面向对象的三大特性:封装,继承,多态(1)封装是将数据和函数组合到一个类里。主要目的是隐藏内部的实现细节,仅暴露必要的接口给外部。通过封装&#…

当没办法实现从win复制东西到Linux虚拟机时的解决办法

① 先确认是否已安装bash复制sudo apt list --installed | grep open-vm-tools如果 没有任何回显 → 没装,跳到 ③如果看到 open-vm-tools 已安装 → 继续 ②② 启动正确的服务(单词别打错)bash复制systemctl status vmtoolsd # 查看…

用Markdown写自动化用例:Gauge实战全攻略!

你作为一名自动化测试工程师,正在为一个复杂的Web应用编写测试脚本:传统工具要求写大量代码,维护起来像解谜游戏,团队非技术成员完全插不上手。这时,Gauge这个“自动化神器”如魔法般出现——它允许用Markdown写可读的…

Unity开发保姆级教程:C#脚本+物理系统+UI交互,3大模块带你通关游戏开发

文章目录基础概念Unity开发环境搭建版本选择:为什么2021 LTS是最佳起点?三步安装:从下载到项目创建界面认知:5分钟掌握核心操作区配置优化:让开发更顺畅验证环境:创建你的第一个CubeC#基础语法与Unity脚本结…

Depth Anything V2论文速读

这篇论文主要讲了两方面1.为了解决模型在正常标注的现实图像上训练的缺陷问题、提出了新的模型训练数据和训练方法真实标记图像存在缺点:标签噪声(深度传感器可能存在空洞、玻璃等物体反射导致精度不准确)、标签细节粗糙(深度图边…

数据库原理及应用_数据库管理和保护_第5章数据库的安全性_理论部分

前言 "<数据库原理及应用>(MySQL版)".以下称为"本书"中第5章前6节内容 引入 数据库的安全性是非常重要的,表现在两个方面:一数据的访问权限,二数据的物理安全.本书在这一章前6节基本上都是理论性的内容,选择其中重要部分进行解读. 5.1数据库安全性…

QT6 配置 Copilot插件

下载项目&#xff1a;解压 GitHub - github/copilot.vim: Neovim plugin for GitHub Copilot Node.js必须安装 Node.js — Download Node.js 例如先安装一个qt6 ,qt Cteatror选择新版本的 设置 效果&#xff0c;注释里面写要求&#xff0c;tab同意 #include "mainwindow…

ArcGIS学习-15 实战-建设用地适宜性评价

选定参评因子 高程坡度河流道路土地利用 确定因子分析标准 以下仅参数仅做展示&#xff0c;并非合理的数值 高程 0-100m&#xff1a;100 分&#xff0c;此高程范围通常地势较为平坦&#xff0c;建设成本相对较低&#xff0c;适宜建设。100-200m&#xff1a;70 分&#xff…