Git Hosting Platforms: GitHub, GitLab, Gitea, Forgejo, Codeberg 对比
先分清两层:Git 和平台 GitHub、Gitea、Forgejo、Codeberg 底层用的都是标准 Git。它们之间的区别不在版本控制,而在包在 Git 外面的那层平台: 版本控制层:Git 负责提交历史、分支、合并,服务器上存的是普通的 Git bare 仓库。本地的 git clone、git push、git pull 在哪个平台上都一样。 平台层:提供 Web 界面、用户和权限、Issue、Pull Request、Wiki、Release、CI 集成等。这些 Git 本身没有,是各平台自己实现的。 另外,这几个名字不是同一类东西: 名字 类型 说明 GitHub 托管服务(闭源) 微软旗下,2018 年被收购 GitLab 平台软件 + 托管服务 有开源社区版,可自建;也有 gitlab.com Gogs 平台软件(开源) Go 编写的轻量 Git 服务,Gitea 的前身 Gitea 平台软件(开源) 2016 年从 Gogs 分叉,可自建 Forgejo 平台软件(开源) 2022 年从 Gitea 分叉,可自建 Codeberg 托管服务(非营利) 运行 Forgejo 的公共实例,codeberg.org 分叉关系:Gogs → Gitea → Forgejo Gogs:早期的 Go 语言自建 Git 服务,单个二进制就能跑,资源占用小。但基本由一位维护者主导,合并社区贡献慢。 Gitea:2016 年社区从 Gogs 分叉出来,采用社区治理,功能迭代快,后来成了自建 Git 服务的主流选择之一。 Forgejo:2022 年 Gitea 的域名和商标被转到新成立的营利公司 Gitea Ltd,部分社区成员担心项目被商业公司控制,于是分叉出 Forgejo。Forgejo 由非营利组织 Codeberg e.V. 托管,一开始是 Gitea 的“软分叉”(持续同步上游),2024 年起变成硬分叉,不再跟随 Gitea 代码。 所以 Gitea 和 Forgejo 目前的界面和用法仍然很像,但功能细节已经开始分化。Forgejo 的一个重点方向是联邦化(ForgeFed 协议),目标是不同实例之间能互相关注、提 Issue、提 PR。 ...