给 Gitea 仓库配上团队 Wiki:从打开开关到回滚版本的实操手册
【免费下载链接】giteaGit with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD项目地址: https://gitcode.com/GitHub_Trending/gi/gitea
在 Gitea 里,几乎每个仓库都能挂一个独立的Gitea Wiki:新人入职第一天能查到部署步骤,重构老代码时也能随手记下设计决策,文档和代码放在同一个仓库名下,找起来不用跳平台。它的底层其实就是一个藏在仓库旁边的隐藏 Git 仓库(.wiki.git),你每次点保存,背后发生的都是一次真正的 Git 提交——所以历史、对比、回滚这些能力天然就有。
打开开关:三种方式启用 Gitea Wiki
Wiki 在 Gitea 里和 Issues、Pull Requests 一样是一个"单元(unit)",按仓库单独开关,三选一即可:
- 网页上:进入仓库 → 设置 → 功能,勾选 Wiki,仓库页面就会多出一个 Wiki 标签页;
- 命令行(管理员):这条命令在服务器侧直接给指定仓库打开 Wiki,不用进网页:
gitea admin repo update --enable-wiki owner/repo- 新建仓库时:创建页的"仓库单元"里一并勾上,省得事后补。
启用后 Wiki 仓库的分支跟随仓库的默认分支。如果你们团队统一用别的分支名,改这一项即可:
[repository] DEFAULT_BRANCH = main📄 第一页怎么写:创建、命名和 URL 的小规则
第一次进 Wiki 页面点"创建首页",写入 Markdown 内容并填一条提交信息,Home页就建好了。标题、代码块、表格都按标准 Markdown 渲染。
命名上有两条规则值得知道,踩不踩看你:
- 页面名里的空格,在地址栏里会显示成连字符(
-),例如Getting Started的 URL 是/wiki/Getting-Started;反过来,地址里的-会被还原成空格作为页面标题。如果标题本身带连字符(如日期2000-01-02),系统会自动加保护标记,避免被误还原。 - 有几个名字是保留的:
_pages、_new、_edit、raw。用它们当页面名会被直接拒绝,源码里写死在 Wiki 路径处理逻辑 里。
小技巧:在页面 URL 后加raw前缀可以拿到未渲染的 Markdown 原文,贴到别的文档工具里很方便。
改错了怎么办:历史版本回滚
因为每次保存都是提交,所以页面底部能看到完整的版本历史:每个版本都能看 diff,点进去对比改了什么。
想回到旧内容,有两条路。网页上:打开目标旧版本,把内容另存回同名页面,相当于"用旧内容再提交一次"。Git 侧更干净,适合精确撤销某次改动:
git revert <提交哈希> git push origin main回滚本身也是一次提交,所以不会丢历史——审计时改动的来龙去脉全程可查。
🚀 不走网页:把 Wiki 当 Git 仓库批量导入
更省事的是直接把 Wiki 仓库拉下来当普通仓库用。它的主地址带.wiki.git后缀,克隆出来就是一个只放.md文件的仓库:
git clone https://gitcode.com/owner/repo.wiki.git cd repo.wiki.git git log --oneline团队既有文档想整体搬进来,先克隆再推送:把.md文件复制进仓库,页面文件名就是页面名(Installation.md对应页面Installation),然后:
git add . git commit -m "导入团队既有文档" git push origin main推送完成后刷新网页端,新页面立刻可见,不用任何导入配置。
权限跟着仓库角色走,外加两条硬规则
Wiki 没有独立的权限面板,完全复用仓库角色:只读协作者能看不能改;可写协作者可以新建、编辑、删除页面;管理员(Owner)拥有全部操作权。路由层的读写门禁就定义在 Wiki 路由 里,分别要求读/写权限。
两条硬规则常被忽略:
- 仓库被归档后,Wiki 整体变只读,编辑请求会被直接拦下;
- Wiki 单元没启用的仓库,访问
/wiki路径会得到 404,而不是空白页。
名字打架、404 与提交被拒:3 个高频问题排查
打开是 404。先确认仓库启用了 Wiki 单元;再检查页面名是否写错——空格与连字符的转换最容易让人对不上号,拿不准就直接从 Wiki 首页导航点过去。
页面建不出来。大概率是撞了保留名(_edit、raw等),换个名字即可;也可能是同名文件已存在于 Git 路径中。
能看不能改。检查两件事:你在仓库里是否有写权限;仓库是否处于归档状态。都正常的话,再看 Wiki 单元是否被误关。
4 个习惯,让文档越写越顺
- 把
Home页当目录用,其他页面全部从首页链接出去; - 一个页面只讲一个主题,文件名保持短,导航和 URL 都清爽;
- 批量变更走 Git(克隆→改→推送),单点小改走网页,各走各的通道;
- 提交信息写清楚"为什么改",历史回滚时才找得到那次改动。
收束一下全文:Gitea Wiki = 隐藏的.wiki.git仓库 + Markdown 渲染层;启用只要勾一个开关或一条 CLI 命令;每次保存即一次提交,历史、diff、回滚免费获得;权限跟随仓库角色,归档即只读;批量导入就是克隆、加文件、推送。
延伸阅读
- Wiki 路径转换与保留名实现:services/wiki/wiki_path.go
- Wiki 路由与权限门禁定义:routers/web/web.go
- 后端开发规范(二次开发参考):docs/guidelines-backend.md
【免费下载链接】giteaGit with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD项目地址: https://gitcode.com/GitHub_Trending/gi/gitea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考