GitHub有替代品,但没有替代者
最近,Git代码托管平台Codeberg决定禁止大多数由生成AI编写的代码组成的项目,这一决定引发了其他地方的关注和广泛讨论。这一决定并没有让我感到惊讶,我并不是在批评。Codeberg一直自视为GitHub的使命驱动替代品,而非中立基础设施。 1 让我感兴趣的是对此反应的失望。许多人反应得好像GitHub的替代品之一将他们或他们的项目排除在外。他们希望Codeberg成为一个普遍的替代品,一个更好的GitHub,以及在离开GitHub时显而易见的选择。在我看来,这揭示了开源领域中的一个重大缺口。托管Git仓库的地方有很多,但托管开源社区的地方却少之又少。GitHub为项目提供了一个共享的身份、习惯和发现路径的池子。没有一个替代品能以类似规模重现这一点。我不认为替代方案一定要是另一个集中化的平台,或是每个项目都应该生活在一个地方。但单靠去中心化是不够的。无论什么替代GitHub的东西,仍然需要一个共享的社交层:贡献者已有的身份、他们理解的惯例,以及在网络中发现项目的方式。为什么不自托管呢?每当对GitHub的不满出现时,总会有人不出所料地说:“Git是去中心化的,直接自托管一个forge吧。”我已经自托管Gitea多年,所以这个论点我非常熟悉。自托管在个人项目上效果很好,但我不会将其用于我希望陌生人参与的项目。在GitHub上,大多数人已经有了账户,并且理解问题和拉取请求是如何工作的。在我的forge上,甚至报告一个小bug都意味着需要创建另一个账户,学习我的forge是如何工作的,以及我希望您遵循的惯例。除非有人真的很在乎,否则他们可能不会费心。我知道我不会。而且贡献只是其中的一半。GitHub曾经在发现方面做得很好。我经常因为我关注的人给某些项目加星而找到项目,这些项目通常是我自己从未搜寻过的领域。这感觉像是一个围绕人们创造事物的社交网络。GitHub此后重新设计了那个动态,我几乎再也不访问它了。默认设置是强大的:一旦发现不再成为GitHub展示给我的体验的一部分,它在我的工作流程中就大大消失了。为什么不使用GitHub?GitHub的基本体验一直在稳步恶化。它速度慢,东西经常无法加载,通知也不可靠。GitHub自己最近将两个重大事件描述为“不可接受”。它的拉取请求体验也很糟糕。大型PR的导航和审查都是痛苦的缓慢。堆叠PR 2在大型软件公司内部已经流行了十多年,但在GitHub上才刚刚成为一件事,即便如此,似乎仍然相当有bug。让我对GitHub推动AI感到沮丧的是,核心的forge似乎被忽视,而Copilot却无处不在。当界面本身已经在挣扎时,一个代理写更多代码并无帮助。Ghostty就是这种沮丧的典范。在四月末,Mitchell Hashimoto宣布Ghostty正在离开GitHub,因为频繁的宕机阻碍了其维护者的可靠工作:在我写这篇文章的那天,我已经无法进行任何PR审查大约2小时,因为出现了GitHub Actions的宕机。如果它每天都将你阻塞数小时,这不再是一个适合严肃工作的地方。有趣的是,他还指出GitHub不仅仅是托管:对于“Git是分布式的!”人群:问题不在于Git,而在于我们依赖的基础设施:问题、PR、Actions等等。哈希莫托表示,Ghostty正在与多个商业和FOSS提供商进行讨论,并计划进行渐进式迁移。如此突出的项目不得不四处寻找,而不是迁移到一个明显的默认选项,正是我所指的缺口。为什么不替代品?值得逐一分析替代品及我对此的看法:GitLab能力很强,但感觉非常企业化,甚至比GitHub更为如此。 3 我也没有发现它在帮助人们偶然发现项目和开发者方面有GitHub好。SourceHut专注且透明,且像Codeberg一样,明确以价值为导向。 4 其邮件导向的工作流程,虽然经过Linux内核等项目的考验,但对大多数GitHub用户来说却很陌生。Forgejo的联盟项目可能最终将自托管实例连接成一个共享网络。它看起来很有前景,但已经开发了相当长一段时间,仍然处于实验阶段 5,尚不是解决自托管社交分裂的实用答案。Radicle在技术上很有趣:存储库是点对点复制的,而问题和补丁与它们一同存储。但它仍然感觉太不成熟,无法替代GitHub。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡