News Hacker|极客洞察

315 2 小时前 jorijn.com
😒离开 GitHub 转投 Forgejo:AI 抓取、CI 锁定与去中心化争论
把 GitHub 换成 Forgejo 就算脱钩了?

🎯 讨论背景

这篇帖子讨论的是把代码从 GitHub(Microsoft 旗下的集中式代码托管平台)迁到 Forgejo(一个可自托管的 Git 代码托管平台,源自 Gitea 分叉)。原文与评论把焦点从单纯换 host 扩展到 Copilot 的训练数据、开源许可是否被尊重,以及公共代码被商业 AI 免费吸收后是否还能维持开源的社会契约。另一条主线是 GitHub 作为开发者平台的锁定效应:issue、PR、CI/CD、release、包仓库、权限与身份系统叠在一起后,迁移难度远高于搬一个 git remote。讨论还延伸到 ForgeFed、AT Protocol、Tangled(基于 AT Protocol 的去中心化代码托管实验)、GitSocial(试图把协作历史和社交图写进 git)以及 SourceHut、Codeberg、Fossil 等替代方案,核心问题是到底该追求真正的联邦,还是只要可迁移、可自托管即可。

📌 讨论焦点

反对 AI 训练与许可争议

许多人把离开 GitHub 的核心原因归结为对 AI 训练的反感:公共仓库被拿去训练 Copilot,而作者并未被明确告知或获得补偿。有人认为这触犯了开源许可的署名和衍生作品约定,甚至把它描述成商业公司把社区代码再卖回给社区。也有人反驳说,开源本来就允许公开阅读和再利用,训练模型从法律和现实上都很难阻止,最多只能把公开代码再搬到别处。争论的焦点不是代码能不能被读,而是商业 AI 是否可以无视原本的社会契约。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13]

GitHub 的平台锁定与社交网络效应

另一派认为,GitHub 的关键价值根本不在 git,而在它把 issue、PR、release、包仓库、权限控制、CI/CD 和项目主页全都整合到一起。很多人依赖的其实是它的社交网络效应:stars、followers、profile README、身份可信度和默认的项目发现入口。迁移仓库本身很容易,难的是把整个项目表面、协作流程和团队入职体验一起搬走。也因此,GitHub 更像一个开发者平台,而不只是代码托管。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11]

Forgejo 的可定制性与自托管体验

支持 Forgejo 的人强调它不仅是可自托管,而且真的好改:权限校验、模板系统和数据库结构都留了明显的扩展点。有人只花约一个小时就做出 private repo 的 public showcase 模式,把 README 和文件列表公开,其余代码、clone、issues、PR 全部锁住,这种改造在 GitHub 上几乎不可能。也有人提到 Forgejo 的 runner、公共镜像到内网主实例的同步、以及用它搭建 EU 主权 CI/CD 的实例,说明它在自托管场景里已经足够实用。问题则更多在周边细节,比如 wiki、package registry 的权限、文档和 Windows 支持。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13]

去中心化、联邦与身份层想象

关于去中心化,评论区并不只是在喊口号,而是在讨论到底缺哪一层:有人说 git 本身已经是分布式的,真正缺的是团队协作和身份层。于是出现了对联邦 forge、统一 OAuth 身份、签名提交、跨 forge PR,甚至把协作历史直接写进 git 的想象。Tangled、Radicle、GitSocial、ForgeFed 和 AT Protocol 都被拿来当作实验方向,但也有人提醒,任何成功的去中心化最后都可能长出新的中心。另一些人干脆把问题压缩成一句话:与其追求神话式分布式,不如先解决可迁移性。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14] [来源15]

替代方案与迁移门槛

替代方案里被反复提到的有 SourceHut、Codeberg、Gitea、Fossil 和 Tangled,但每个方案都卡在不同门槛上。有人想要的只是便宜的 bare repo 加只读网页界面,可现实里大多数托管商都在卖 CI minutes、AI 助手和企业功能,价格和复杂度一起上升。Fossil 因为把 wiki、tickets、forum 和历史都打包成单文件而被称赞,但网络效应、历史清理习惯和团队外部协作让它很难普及。自托管则常被认为最简单,却又会碰到私库、Windows 二进制、runner 矩阵和反爬虫压力这些现实问题。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14]

离开的只是少数,GitHub 仍是默认入口

也有人直接反驳标题里的氛围感,认为真正离开 GitHub 的只是少数人,只是他们更愿意写文章表达选择。GitHub 之所以难替代,不只是因为方便,还因为 stars、followers、profile README 和雇主认可把它变成了某种职业凭证。很多开发者即使有自己的 Forgejo,也只是拿它做镜像或备份,真正的主战场还是留在 GitHub 上。换句话说,这更像一场可见度很高的迁移,而不是全面出走。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]

📚 术语解释

Forgejo: 可自托管的 Git 代码托管平台,源自 Gitea 分叉,强调可定制和社区治理。

Gitea: 轻量级自托管 Git 服务,与 Forgejo 关系密切,是常见的 GitHub 替代品之一。

GitHub Actions: GitHub 的 CI/CD 自动化系统,常被视为迁移锁定的主要来源之一。

AT Protocol: Bluesky 使用的开放协议,被 Tangled 等项目用来做去中心化身份与托管。

ForgeFed: 让不同 forge 之间联邦互通的协议设想。

GitSocial: 把协作历史和社交图保存在 git 中,并支持跨 forge 协作的项目。

Fossil: 把代码、wiki、tickets、forum 等整合进单一仓库文件的一体化 SCM。

SourceHut: 偏极简、脚本友好的 Git 托管与开发平台,主打简洁而非社交化。