一、前言,什么是 Gitea?
用过它的人都知道,在他们心中它一定是最好用的开源、免费、强大、高性能、低消耗、成熟、体验好的高性价比git服务器。非常适合用于搭建中小型公司的git私服。
Gitea的宗旨是提供最简单、最快捷、最轻松的方式来建立自托管 Git 服务。
二、Gitea 与其他 Git 托管选项的比较
为了帮助您确定 Gitea 是否适合您的需求,以下是它与其他 Git 自托管选项的比较。
下表中所属使用的符号:
- ✓ – 支持
- ⁄ - 支持有限的功能
- ✘ - 不支持
- ⚙️-通过第三方软件支持
1. 一般特性支持
特征GiteaGogsGitHub EEGitLab CEGitLab EEBitBucketRhodeCode CERhodeCode EE开源且免费✓✓✘✓✘✘✓✓低 RAM/ CPU 使用率✓✓✘✘✘✘✘✘多数据库支持✓✓✘⁄⁄✓✓✓支持多种操作系统✓✓✘✘✘✘✓✓轻松升级✓✓✘✓✓✘✓✓遥测✘✘✓✓✓✓✘✘第三方渲染工具支持✓✘✘✘✘✓✘✘WebAuthn(2FA)✓✘✓✓✓✓✘✓丰富的 API✓✓✓✓✓✓✓✓内置包/容器注册表✓✘✓✓✓✘✘✘将提交同步到外部仓库(推送镜像)✓✓✘✓✓✘✓✓从外部仓库同步提交(拉镜像)✓✓✘✓✓✘✓✓明暗主题切换✓✘✓✓✓✘✘✘自定义主题支持✓✓✘✘✘✓✓✓Markdown 支持✓✓✓✓✓✓✓✓CSV 支持✓✘✓✘✘✓✘✘‘GitHub / GitLab 页面’⚙️✘✓✘✘✓✘✘要点/片段⚙️✘✓✓✓✓✓✓特定于仓库的 wiki(本身就是一个仓库)✓✓✓✓✓⁄✘✘部署代币✓✓✓✓✓✓✓✓具有写入权限的存储库令牌✓✘✓✓✓✓✓✓RSS订阅✓✘✓✘✘✘✓✓内置 CI/CD✓✘✓✓✓✘✘✘子群:群内群✘✘✘✓✓✘✓✓与其他实例的交互⁄✘✘✘✘✘✘✘Markdown 中的美人鱼图✓✘✓✓✓✘✘✘Markdown 中的数学语法✓✘✓✓✓✘✓✓
2. 代码管理支持
特征GiteaGogsGitHub EEGitLab CEGitLab EEBitBucketRhodeCode CERhodeCode EE存储库主题✓✘✓✓✓✘✘✘存储库代码搜索✓✘✓✓✓✓✓✓全局代码搜索✓✘✓✘✓✓✓✓Git LFS 2.0✓✘✓✓✓✓✓✓集团里程碑✘✘✘✓✓✘✘✘细粒度的用户角色(代码、问题、Wiki 等)✓✘✘✓✓✘✘✘已验证提交者⁄✘?✓✓✓✘✘GPG 签署的承诺✓✘✓✓✓✓✓✓SSH 签名提交✓✘✓✓✓?✘✘拒绝未签名的提交✓✘✓✓✓✓✓✓从其他服务迁移存储库✓✘✓✓✓✓✓✓存储库活动页面✓✘✓✓✓✓✓✓分行经理✓✘✓✓✓✓✓✓创建新分支✓✘✓✓✓✘✘✘网页代码编辑器✓✓✓✓✓✓✓✓提交图✓✘✓✓✓✓✓模板存储库✓✘✓✘✓✓✘✘Git 责备✓✘✓✓✓✓✓✓图像变化的视觉比较✓✘✓???✘✘
2. 问题追踪支持
特征GiteaGogsGitHub EEGitLab CEGitLab EEBitBucketRhodeCode CERhodeCode EE问题追踪器✓✓✓✓✓/✘✘问题模板✓✓✓✓✓✘✘✘标签✓✓✓✓✓✘✘✘时间跟踪✓✘✓✓✓✘✘✘问题有多个受让人✓✘✓✘✓✘✘✘相关问题✘✘⁄✓✓✘✘✘机密问题✘✘✘✓✓✘✘✘评论反应✓✘✓✓✓✘✘✘锁定讨论✓✘✓✓✓✘✘✘批量问题处理✓✘✓✓✓✘✘✘问题板(看板)/✘✘✓✓✘✘✘从问题创建分支✘✘✘✓✓✘✘✘将评论转换为新问题✓✘✓✓✓✘✘✘问题搜索✓✘✓✓✓✓✘✘全球问题搜索/✘✓✓✓✓✘✘问题依赖性✓✘✘✘✘✘✘✘通过电子邮件创建问题✘✘✘✓✓✓✘✘服务台✘✘✘✓✓✘✘✘
3. 拉取合并请求支持
特征GiteaGogsGitHub EEGitLab CEGitLab EEBitBucketRhodeCode CERhodeCode EE拉取/合并请求✓✓✓✓✓✓✓✓挤压合并✓✘✓✓✓✓✓✓变基合并✓✓✓✓✓✓✓✓拉取/合并请求内联注释✓✘✓✓✓✓✓✓拉取/合并请求批准✓✘✓✓✓✓✓✓拉取/合并需要批准✓✘✓✘✓✓✓✓拉取/合并多个审阅者✓✓✓✘✓✓✓✓合并冲突解决✘✘✓✓✓✓✘✘限制特定用户的推送和合并访问✓✘✓✓✓✓✓✓恢复特定提交✓✘✓✓✓✓✘✘拉取/合并请求模板✓✓✓✓✓✘✘✘挑选变化✓✘✘✓✓✘✘✓下载补丁✓✘✓✓✓/✓✓合并队列✘✘✓✘✓✘✘✘
4. 第三方插件集成
特征GiteaGogsGitHub EEGitLab CEGitLab EEBitBucketRhodeCode CERhodeCode EEWebhook✓✓✓✓✓✓✓✓Git钩子✓✓✓✓✓✓✓✓AD/LDAP集成✓✓✓✓✓✓✓✓支持多种LDAP/AD服务器✓✓✘✘✓✓✓✓LDAP用户同步✓✘✓✓✓✓✘✓SAML2.0服务提供商✘✘✓✓✓✓✘✓OpenID Connect支持✓✘✓✓✓?✘✓OAuth 2.0集成(外部授权)✓✘⁄✓✓?✘✓充当OAuth2.0提供商✓✘✓✓✓✓✘✘双因素身份验证(2FA)✓✓✓✓✓✓✘✓与最常见服务的集成✓/⁄✓✓⁄✓✓整合外部 CI/CD✓✘✓✓✓✓✓✓
三、Gitea特性介绍
1. 定义
Gitea 是一种轻松、自托管、一站式的软件开发服务。它包括 Git 托管、代码审查、团队协作、包注册和 CI/CD。它类似于 GitHub、Bitbucket 和 GitLab。
2. 诞生
Gitea 最初是从Gogs分叉而来,但几乎所有代码都已更改。请参阅Gitea 公告博客文章,了解分叉的理由。
Gitea 不会从上游发送或挑选提交,因此如果您从 Gogs 升级到 Gitea,则无法保证它会正常工作。推荐的方法是将存储库从 Gogs 迁移到 Gitea。
3. 跨平台
使用 Go,可以在 Go 支持的所有平台上独立地完成此操作 ,包括 x86、amd64、ARM 和 PowerPC 架构上的 Linux、macOS 和 Windows。
4. 功能特性
4.1 代码托管
Gitea 支持创建和管理存储库、浏览提交历史和代码文件、审查和合并代码提交、管理协作者、处理分支等。它还支持许多常见的 Git 功能,例如标签、Cherry-pick、钩子、集成协作工具等。
4.2 轻量且快速
Gitea 的设计目标之一就是轻量、响应快。与一些大型代码托管平台不同,它保持了精简的风格,速度表现良好,适合资源有限的服务器环境。由于采用轻量级设计,Gitea 的资源消耗相对较低,在资源受限的环境中表现良好。
4.3 轻松部署和维护
它可以轻松部署在各种服务器上,无需复杂的配置或依赖关系。这使得个人开发人员或小型团队可以方便地设置和管理自己的 Git 服务。还支持docker快捷部署!
4.4 安全
Gitea 非常重视安全性,提供用户权限管理、访问控制列表等功能,以确保代码和数据的安全。
4.5 代码审查
代码审查支持 Pull Request 工作流和 AGit 工作流,审查者可以在线浏览代码,提供审查意见或反馈,提交者可以接收审查意见并在线回复或修改代码,代码审查可以帮助个人和组织提升代码质量。
创建问题单
4.6 持续集成/持续交付
Gitea Actions 支持 CI/CD 功能,与 GitHub Actions 兼容。用户可以用熟悉的 YAML 格式编写工作流,并重用各种现有的 Actions 插件。Actions 插件支持从任何 Git 网站下载。
4.7 项目管理
Gitea 通过列和问题跟踪项目需求、功能和错误。问题支持分支、标签、里程碑、任务、时间跟踪、截止日期、依赖项等功能。
4.8 工件存储库
Gitea 支持超过 20 种不同类型的公共或私有软件包管理,包括 Cargo、Chef、Composer、Conan、Conda、Container、Helm、Maven、npm、NuGet、Pub、PyPI、RubyGems、Vagrant 等。
4.9 开源社区支持
Gitea 是一个基于 MIT 许可的开源项目。它拥有一个活跃的开源社区,不断开发和改进平台。该项目还积极欢迎社区贡献,确保更新和创新。
4.10 多语言支持
Gitea提供多种语言界面,满足全球用户的需求,推进国际化和本地化。
5. 系统要求
- Raspberry Pi 3 功能强大,足以运行 Gitea 处理小型工作负载。
- 对于小型团队/项目来说,2 个 CPU 核心和 1GB RAM 通常就足够了。
- Gitea 应该在 UNIX 类型的系统上使用专用的非 root 系统帐户运行。注意:Gitea 管理该~/.ssh/authorized_keys文件。以普通用户身份运行 Gitea 可能会破坏该用户的登录能力。
- 需要Git 2.0.0 或更高版本。如果启用并且您的 Git 版本 >= 2.1.2,则Git 大文件存储将可用 如果你的 Git 版本 >= 2.18,Git 提交图渲染将自动启用
6. 浏览器支持
- Chrome、Firefox、Safari 和 Edge 的最新两个版本
- Firefox ESR
版权归原作者 月下独码 所有, 如有侵权,请联系我们删除。