Gitea 版本控制服务端

官网

官方网站:https://about.gitea.cn/

官方文档:https://docs.gitea.cn/

官方下载地址:https://dl.gitea.com/gitea/

各版本控制软件对比

对比项 SVN Git Mercurial Perforce
版本控制类型 集中式(依赖中央服务器) 分布式(本地完整版本库) 分布式 集中式(企业级)
服务端 Apache Subversion Gitea、Gogs、GitLab、GitHub RhodeCode、Mercurial Server Helix Core
客户端 TortoiseSVN Git Bash、TortoiseGit、SourceTree hg、TortoiseHg P4V
Eclipse 插件 Subclipse、Subversive EGit MercurialEclipse Perforce Plugin
IDEA 插件 Subversion Git Mercurial Perforce
核心特点 集中管理,目录级权限控制,简单直接,适合文档、非代码类版本管理 本地有完整仓库,分支灵活高效,适合多人协作、开源与现代软件开发 分布式,命令简洁,跨平台,学习曲线比 Git 平缓,生态较小 企业级集中式,大文件、二进制支持强,权限精细,多用于游戏、大型工业项目
个人部署服务端推荐 VisualSVN Server Gitea 一般 复杂,不推荐个人部署
部署特点 VisualSVN Server:轻量服务端,配置简单,但是只有WIndows端 svnserve:跨平台,命令行 Gitea:个人部署天花板推荐 Gogs:比 Gitea GitLab:相对更重量,麻烦些 服务端部署简单,但生态和工具链不如 Git 丰富 服务端重、配置复杂,运维成本高,个人/小团队不适用

使用docker安装

1.安装并运行Gitea

bash 复制代码
#创建目录
sudo mkdir -p /service/docker/gitea

#分配权限
sudo chown -R ubuntu:ubuntu /service/docker/gitea

首次运行 Gitea 容器

bash 复制代码
docker run -d \
  --name gitea \
  --restart unless-stopped
  -p 3000:3000 \
  -v /service/docker/gitea:/data \
  gitea/gitea:latest
参数 作用
-d 后台运行(daemon)
--name gitea 容器命名为 gitea(方便管理)
--restart unless-stopped 设置自动重启
-p 3000:3000 将宿主机 3000 端口映射到容器 3000 端口
-v /service/docker/gitea/data 挂载数据目录(必须)
gitea/gitea:latest Gitea 官方镜像(获取官方镜像)

2.登陆页面

网络通都能打开,只是管理员登陆和非管理员登陆权限不通

bash 复制代码
#本地访问
http://localhost:3000

#宿主机访问
#每个人的地址不一样,看你虚拟机的IP
http://192.168.140.129:3000

首次打开进行配置

其他的不用动,设置好管理员和管理员密码

3.重启

不需要重启,这里只是列一下命令

bash 复制代码
# 查看所有容器(包括停止的)
docker ps -a

#停止容器
docker stop gitea

# 示例:重新启动my-nginx容器
docker start gitea

# 查看容器启动日志(排查启动失败问题)
docker logs gitea

基础设置

1.查看配置文件地址

管理员登陆之后查看配置文件地址

我这里是:/data/gitea/conf/app.ini

因为运行在docker上,所以实际路径是容器启动时挂载的路径:/service/docker/gitea/gitea/conf/app.ini

2.修改配置文件

bash 复制代码
# 进入配置文件目录
cd /service/docker/gitea/gitea/conf

#设置仅能管理员新建用户
sudo sed -i 's/DISABLE_REGISTRATION = false/DISABLE_REGISTRATION = true/' app.ini
#设置OAUTH_USER匹配的用户名
#不设置会导致只要有一个密码与现有用户的密码相同就能通过验证
sudo sed -i '/^\[server\]/a OAUTH_USER = admin' app.ini

#重启生效
docker restart gitea

3.新建用户


上面两项不用动,输入信息创建就行

仓库管理

1.创建仓库

设置为私有,控制权限

这时候别人登陆是看不到这个仓库的

增加协作者,可以给别人修改这个仓库的权利,并且能对协作者进行权限管理

2.创建分支

进到仓库的分支选项创建分支

3.设置保护分支

添加规则

设置main分支为受保护的分支

设置合并请求批准为1

审批人设置为管理员(自己)

代码

1.TortoiseGit使用http拉取代码


首次拉取时,会先弹出Gitea登陆的页面,登陆之后会让授权

授权之后会保存到Windows凭据,之后就不需要登陆了

如果需要切换用户,需要先删除Windows凭据

无权限时会报错找不到仓库

2.eclipse使用插件拉取代码

先新建好工作空间,例如:D:\Develop\eclipse workspace\WeChat

建议每个项目有个单独的工作空间

卸载gitea

bash 复制代码
#停止容器
docker stop gitea

#查看容器状态
docker ps -a

# 彻底删除容器
docker rm gitea

#删除镜像
docker rmi gitea

根据上面的配置文件的地方,把配置文件删除

bash 复制代码
sudo rm -rf gitea

服务器间迁移

迁移时数据文件单独迁移,Docker镜像自行下载

把配置文件打包进镜像会导致无法动态修改配置

避免破坏 Docker 设计原则:Docker 镜像应仅包含应用程序,不包含运行时数据(如配置、数据库)

bash 复制代码
# 进入数据目录
cd /service/docker

# 打包整个 Gitea 数据目录
sudo tar -czvf gitea_data.tar.gz gitea

在新服务器解压并启动

bash 复制代码
# 1. 创建目录并解压
cd /service
sudo mkdir -p docker
sudo tar -xzvf /home/ubuntu/gitea_data.tar.gz -C /service/docker

# 2. 启动容器(自动拉取镜像)
docker run -d \
  --name gitea \
  -p 3000:3000 \
  -v /service/docker/gitea:/data \
  gitea/gitea:latest

解决问题

1.关于提交作者的显示

先说总结:作者可以随便写,提交者只能是Gitea的用户

实测,仓库里面的提交记录是根据用户的邮箱匹配的

邮箱匹配到就会显示头像

匹配不到就默认显示,因为作者也是能手动修改的的,没什么限制

所以看提交记录还是要去主页面看,那里显示的是正常的用户名和头像

仓库显示的作者:是客户可以随意修改的信息

主页面显示的是Gitea服务器的用户

相关推荐
猫头虎8 天前
Gitea 服务器搭建:如何在公司服务器搭建 Gitea 环境实现代码仓库私有化托管
运维·服务器·git·github·ai编程·gitea·gitcode
路由侠内网穿透.12 天前
本地部署代码托管解决方案 Gitea 并实现外部访问( Windows 版本)
运维·服务器·网络协议·gitea
吹牛不交税12 天前
gitea安装windows并实现CICD持续集成部署
ci/cd·gitea
不像程序员的程序媛1 个月前
gitea基本操作
gitea
阿里巴巴P8资深技术专家1 个月前
Docker一站式部署:RustFS、GoFastDFS、Gitea与PostgreSQL实战指南
docker·postgresql·gitea
木二_1 个月前
附058.Kubernetes Gitea部署
ci/cd·kubernetes·gitea
慧一居士1 个月前
Gitea和GitLab对比
运维·gitlab·gitea
ZeroNews内网穿透1 个月前
轻量级自托管Git服务:Gitea私有化部署与公网访问
服务器·网络·数据库·git·gitea
空气中的告白2 个月前
gitea安装及使用方法(常用命令)
gitea