当前位置: 首页 > news >正文

Gitea 版本控制服务端

官网

官方网站:https://about.gitea.cn/
官方文档:https://docs.gitea.cn/
官方下载地址:https://dl.gitea.com/gitea/

各版本控制软件对比

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

使用docker安装

1.安装并运行Gitea

#创建目录sudomkdir-p/service/docker/gitea#分配权限sudochown-Rubuntu:ubuntu /service/docker/gitea

首次运行 Gitea 容器

dockerrun-d\--namegitea\--restartunless-stopped-p3000: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:latestGitea 官方镜像(获取官方镜像)

2.登陆页面

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

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

首次打开进行配置
其他的不用动,设置好管理员和管理员密码

3.重启

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

# 查看所有容器(包括停止的)dockerps-a#停止容器dockerstop gitea# 示例:重新启动my-nginx容器dockerstart gitea# 查看容器启动日志(排查启动失败问题)dockerlogs gitea

基础设置

1.查看配置文件地址

管理员登陆之后查看配置文件地址
我这里是:/data/gitea/conf/app.ini
因为运行在docker上,所以实际路径是容器启动时挂载的路径:/service/docker/gitea/gitea/conf/app.ini

2.修改配置文件

# 进入配置文件目录cd/service/docker/gitea/gitea/conf#设置仅能管理员新建用户sudosed-i's/DISABLE_REGISTRATION = false/DISABLE_REGISTRATION = true/'app.ini#设置OAUTH_USER匹配的用户名#不设置会导致只要有一个密码与现有用户的密码相同就能通过验证sudosed-i'/^\[server\]/a OAUTH_USER = admin'app.ini#重启生效dockerrestart gitea

3.新建用户



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

仓库管理

1.创建仓库


仓库名称与你的项目名称一致
设置为私有,控制权限
这时候别人登陆是看不到这个仓库的

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

2.创建分支

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

3.设置保护分支

添加规则

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

设置合并请求批准为1
审批人设置为管理员(自己)

4.查看服务器中的仓库

#查看仓库存储位置设置cat/service/docker/gitea/gitea/conf/app.ini|grep-A5"\[repository\]"#找不到的话可以直接S搜索sudofind/service/docker/gitea-name"*.git"-typed#按照上面的安装步骤实际的路径为/service/docker/gitea/git/repositories/admin/gientXXXX.git

代码

1.首次上传

项目文件夹右键:Open Git Bash Here

依次执行下面命令

#初始化本地仓库gitinit#添加全部代码到暂存区gitadd.#提交代码到本地仓库gitcommit-m"first commit"#绑定远程仓库地址#例如:git remote add origin http://192.168.140.130:3000/admin/XXX.gitgitremoteaddorigin 远程仓库的地址#推送代码到远程仓库的master分支gitpush-uorigin master


最后一条命令会弹出页面要求进行验证

2.TortoiseGit使用http拉取代码



首次拉取时,会先弹出Gitea登陆的页面,登陆之后会让授权
授权之后会保存到Windows凭据,之后就不需要登陆了
如果需要切换用户,需要先删除Windows凭据


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

3.eclipse使用插件拉取代码

先新建好工作空间,例如:D:\Develop\eclipse workspace\WeChat
建议每个项目有个单独的工作空间

卸载gitea

#停止容器dockerstop gitea#查看容器状态dockerps-a# 彻底删除容器dockerrmgitea#删除镜像dockerrmi gitea

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

sudorm-rfgitea

服务器间迁移

迁移时数据文件单独迁移,Docker镜像自行下载
把配置文件打包进镜像会导致无法动态修改配置
避免破坏 Docker 设计原则:Docker 镜像应仅包含应用程序,不包含运行时数据(如配置、数据库)

# 进入数据目录cd/service/docker# 打包整个 Gitea 数据目录sudotar-czvfgitea_data.tar.gz gitea

在新服务器解压并启动

# 1. 创建目录并解压cd/servicesudomkdir-pdockersudotar-xzvf/home/ubuntu/gitea_data.tar.gz-C/service/docker# 2. 启动容器(自动拉取镜像)dockerrun-d\--namegitea\-p3000:3000\-v/service/docker/gitea:/data\gitea/gitea:latest

解决问题

1.关于提交作者的显示

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

实测,仓库里面的提交记录是根据用户的邮箱匹配的
邮箱匹配到就会显示头像
匹配不到就默认显示,因为作者也是能手动修改的的,没什么限制
所以看提交记录还是要去主页面看,那里显示的是正常的用户名和头像

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

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

http://www.jsqmd.com/news/459431/

相关文章:

  • 2026年知名的显示屏品牌推荐:矿用显示屏品牌厂家推荐 - 行业平台推荐
  • PyTorch+JupyterLab如何高效开发?预装镜像部署完整指南
  • Jeecg3.8.2 前端经验汇总
  • 2026年质量好的柔性太阳能板品牌推荐:玻璃太阳能板行业内口碑厂家推荐 - 行业平台推荐
  • 洛谷P2014 选课(树形DP+0/1背包)
  • 攻防世界免费题库难度三(2)
  • 茅台app多账户自动预约程序系统源码
  • PCL 中 Point-to-Point / Point-to-Plane / GICP / NDT 的区别与联系
  • 2026年评价高的消防服洗涤设备厂家推荐:酒店洗衣房洗涤设备厂家信誉综合参考 - 行业平台推荐
  • 图图的嗨丝造相-Z-Image-Turbo模型解读:为何选择Z-Image-Turbo作为基座
  • 飞舞大学生成为算法糕手Day 7 | 四数相加Ⅱ、赎金信、三数之和、四数之和
  • 第十八章: Kubernetes - Rancher 控制面板使用
  • 深度学习环境搭建与 Hugging Face 本地模型实战全记录
  • 2026年口碑好的税务问题品牌推荐:税务需求/专业税务公司/成都税务公司项目推荐 - 行业平台推荐
  • 2026年比较好的高品质气压棒厂家推荐:电竞椅子气压棒/自动回位气压棒厂家选购参考汇总 - 行业平台推荐
  • computed 的缓存哲学:如何避免不必要的重复计算?
  • 2026年比较好的追背气弹簧品牌推荐:橱柜气弹簧/支架气弹簧/老板椅气弹簧品牌厂商推荐(更新) - 行业平台推荐
  • Big Data Mining and Analytics 2025|GPT-NAS:结合生成预训练模型的进化式神经架构搜索
  • 第十九章: Kubernetes - Rook Ceph 云原生存储
  • 阿里云 H5 一键登录接入实战:前后端完整实现
  • GE IC693PBS201从站通信模块
  • 第一篇文章
  • Spring AI 第 8 篇 ChatMemory 详解:如何让模型记住你的每一次对话
  • 鸿蒙APP开发经验分享:HarmonyOS Location Kit 端侧与云侧双方案落地指南
  • OpenClaw零基础教程:从一键部署,到7*24小时不间断运行!
  • APN(Access Point Name)详解:从基础原理到实际应用场景
  • 数据资产管理——172页详解数据资产管理深度解读【附全文阅读】
  • 用OpenClaw白嫖世界顶级模型,一个月省了2万块!
  • 嵌入式八股文学习-自学长期更新-2026
  • GitHub Browser-Use 部署踩坑实录:从失败到成功的曲折历程