如果我能自己打造 GitHubIf I Could Make My Own GitHub
作者与朋友设想了一个假设场景:如果他们拥有无限资源,会如何构建自己的代码托管平台。他们考虑的核心理念是打造一个真正属于开发者、尊重代码所有权、避免平台垄断的理想化版本,强调去中心化与社区自治。
Mathew Duggan
我和朋友有个游戏,我们会聊如果变得超级有钱会做什么。不是那种“还清房贷”的有钱,是那种拥有潜艇却从未坐进去过的有钱,是那种第三任妻子开了护肤品牌的有钱,是科技巨头级别的有钱——能让你在怀俄明州买下一整片地产,还能让你穿着同一件灰色T恤去国会作证时充满自信的那种有钱。
我一直以来的梦想之一就是打造一个新的代码托管平台(forge)。这次动笔是因为看到一篇关于Ghostty在GitHub上表现不错的文章,但其实这个想法我已经酝酿和谈论好几年了。鉴于GitHub在其核心职能上已经变得如此糟糕,我觉得尝试描绘一下我这个亿万富翁式的理想化平台会很有意思。而且这个平台不会有太多阴茎形状的火箭,里面塞满过气的名人。
现代代码托管平台存在哪些问题?
GitHub、GitLab 和 Gitea(我主要用过的三个)本质上都是基于相似的设计理念。它们之间确实有差异,但可以看出GitHub为整个行业设定了标准,其他平台则试图借鉴这些特性,成功程度不一。问题在于,所有这些平台都试图添加git本身不具备的功能,而这些功能却是用户所需要的。
Git在其设计目标上表现出色,但它被设计用来解决的不是大多数人的使用场景。Git是内核开发者的完美工具。它是一个去中心化的分布式版本控制系统,其核心思想是通过邮件发送补丁给维护者。你信任这些维护者来管理他们负责的部分,只合并合理的提交,拒绝不合理的。这是一个高度信任的环境,对在线贡献者的地理位置或所用系统几乎没有限制。即使你有一台2010年的笔记本电脑,每周才连一次网,依然可以通过这些流程成为一个项目中有意义的贡献者。
然而,在大多数工作中,git实际上只是我从中央仓库拉取和推送代码的方式。所有重要的事情都在托管平台内部发生,而我的本地客户端上几乎什么都不做。Pull Request 是我用来执行“四眼原则”的方式,GitHub Actions 是我在 Pull Request 上运行测试和代码检查的工具,以确保代码功能正常并符合组织要求,用户在平台上的身份信息是我验证其身份的依据。我通过 Issues 跟踪代码中的问题,并通过 Releases 发布供用户下载的版本。这个工作流程中并没有太多 git 的操作,大部分功能都是建立在 git 之上的。
因此,这就是我对现代代码托管平台的主要不满,也是我希望能解决的问题。
那么Y确实部分实现了这些想法
没错。有很多工具各自实现了其中一部分。我希望有人能把它们整合起来,组装成一个完整的解决方案。我希望JJ作为VCS,这个平台作为Forge,并让用户相信:我可以长期愉快地用一台树莓派作为Forge。这些平台的设计应基于现代理念,比如对象存储、浅层克隆,以及持续被LLM机器人频繁调用。
在一个 GitHub 做得足够好的世界里,我根本不会费心写这些。GitHub 是默认选择,跟人讨论如何绕过默认选项通常是浪费时间。就像点可乐时默认要 Heinz 番茄酱,我不会想要 Pepsi,如果我要用 Forge 到 2026 年,除非有极其充分的理由,否则我不会选别人用的那个。直到最近,其他 Forge 还像红薯薯条一样——也就是从来不是你想吃的那道。
但我们现在所处的时代,那个大一统的 Forge 正在崩塌,而没人能造出替代品。有钱的人忙着造火箭,有品味的人忙着上班,剩下我们这些人则在午夜打开标题为 'asdfasdf' 的 PR,等着机器人审核,心里琢磨着:我们整个职业生涯都在用的工具,到底从什么时候开始就不是为我们打造的了?
哪天我拿到潜艇经费了,一定告诉你。
需要完整排版与评论请前往来源站点阅读。