GitHub 有替代品,但无可取代。
GitHub has alternatives, but no replacement

原始链接: https://lalitm.com/post/github-alternatives/

Codeberg 最近封禁 AI 生成项目的举措,凸显了开源生态系统中一个关键的缺失。虽然许多人都在寻求“更好的 GitHub”,但现有的替代方案都未能复制 GitHub 最宝贵的特性:其**社交层**。 GitHub 不仅仅是一个代码仓库托管平台,它还是一个集身份认证、协作和项目发现于一体的中心化枢纽。虽然 Git 本身是去中心化的,但围绕它构建的基础设施——如 Issue、Pull Request 和社区标准——并非如此。自托管或碎片化的小众平台会造成阻碍,使习惯了 GitHub 通用惯例的贡献者望而却步。 目前的替代方案(如 GitLab、SourceHut 和 Radicle)难以弥补这一差距。它们要么受困于臃肿的商业化,要么存在非传统的工作流程,又或者技术尚未成熟。随着 GitHub 性能和可靠性的下降,业界依然缺乏一个“显而易见”的继任者。 作者认为,一个可行的替代方案需要将**社交体验作为核心产品**,而不是作为事后的补充。无论是需要一家新的、“无聊”的营利性公司,还是联邦身份验证技术的突破,挑战依然存在:要取代 GitHub,平台必须提供共享的社区和发现网络,从而实现大规模下无缝的开源协作。

Hacker News 上的一场讨论探讨了为何尽管存在其他选择,GitHub 依然是行业标准。共识是,GitHub 的主导地位更多源于强大的网络效应,而非仅仅是其技术功能。 要点包括: * **社会认同:** 星标、分支(fork)和社区互动等指标是衡量项目质量与可靠性的重要参考,这使得开发者不愿离开。 * **基础设施:** 内置的 Windows 和 macOS 运行程序等特定功能提供了实际便利,将开发者留在了该平台。 * **界面反感:** 批评者认为 GitHub 充斥着不必要的繁杂界面元素和干扰性功能,有人将其视为平台被广泛依赖后的副作用。 总之,尽管开发者偶尔会批评该平台的发展方向,但 GitHub 内置的集体“审计”和声誉生态系统,使得任何单一替代品都难以实现真正的取代。
相关文章

原文

Codeberg, a Git code hosting platform, recently took a decision to prohibit projects that mostly consist of generative-AI-written code which has prompted concern and extensive discussion elsewhere.

The decision does not surprise me, and I don’t mean that as a criticism. Codeberg has always presented itself as a mission-driven alternative to GitHub, not neutral infrastructure.

What interests me is the disappointment in the response. Many people reacted as though one of the few plausible GitHub replacements had ruled them or their projects out. They wanted Codeberg to be a universal alternative, a better GitHub and the obvious place to go when leaving it.

To me, that exposes a big gap in the open-source space. There are plenty of places to host a Git repository, but remarkably few places to host an open-source community. GitHub gives projects a shared pool of identities, habits and paths to discovery. None of the alternatives has reproduced that at a similar scale.

I don’t think the answer has to be another centralized platform, or that every project should live in one place. But decentralization is not enough on its own. Whatever replaces GitHub still needs a shared social layer: identities contributors already have, conventions they understand and ways to discover projects across the network.

Why not self-hosting?

Whenever dissatisfaction with GitHub comes up, someone inevitably says: “Git is decentralized. Just self-host a forge.”

I’ve self-hosted Gitea for years, so this is an argument I’m very familiar with. Self-hosting works well for personal projects, but I wouldn’t use it for something I wanted strangers to contribute to. On GitHub, most people already have an account and understand how issues and pull requests work. On my forge, even reporting a small bug means creating another account, learning how my forge works and what conventions I want you to follow. Unless someone really cared, they probably wouldn’t bother. I know I wouldn’t.

And contribution is only half of it. GitHub used to be genuinely good at discovery. I regularly found projects because someone I followed starred them, often in areas I would never have searched for myself. It felt like a social network built around people making things.

GitHub has since redesigned that feed, and I almost never visit it anymore. Defaults are powerful: once discovery stopped being part of the experience GitHub put in front of me, it largely disappeared from my workflow.

Why not GitHub?

The basic experience of GitHub has been getting steadily worse. It is slow, things regularly fail to load and notifications are unreliable. GitHub itself recently described two major incidents as “not acceptable”.

Its pull request experience has been awful too. Large PRs are painfully slow to navigate and review. Stacked PRs have been common inside large software companies for well over a decade, but only just became a thing with GitHub and, even then, seems to be quite buggy.

What frustrates me about GitHub’s push towards AI is that the core forge feels neglected while Copilot appears everywhere. An agent writing more code doesn’t help when the interface for reviewing it is already struggling.

Ghostty exemplifies this frustration. In late April, Mitchell Hashimoto announced that Ghostty is leaving GitHub because frequent outages were preventing its maintainers from working reliably:

On the day I am writing this post, I’ve been unable to do any PR review for ~2 hours because there is a GitHub Actions outage. This is no longer a place for serious work if it just blocks you out for hours per day, every day.

Interestingly, he also makes the point that GitHub is more than hosting:

To the “Git is distributed!” crowd: the issue isn’t Git, it’s the infrastructure we rely on around it: issues, PRs, Actions, etc.

Hashimoto said Ghostty was in discussions with multiple commercial and FOSS providers and planned an incremental migration. The fact that such a prominent project had to shop around, rather than move to an obvious default, is exactly the gap I mean.

Why not the alternatives?

It’s worth going through the alternatives and the problems I see with each:

GitLab is capable, but it feels incredibly corporate, even more so than GitHub. Nor have I found it as good as GitHub at helping people stumble across projects and developers.

SourceHut is focused and transparent and, like Codeberg, openly values-driven. Its email-oriented workflow, while battle-tested by projects like the Linux kernel, is unfamiliar to most GitHub users.

Forgejo’s federation project may eventually connect self-hosted instances into a shared network. It looks promising, but has been in development for quite some time, remains experimental and is not yet a practical answer to the social fragmentation of self-hosting.

Radicle is technologically interesting: repositories are replicated peer to peer, while issues and patches are stored alongside them. But it still feels too immature to replace GitHub for a public project. For example, its public web interface lets people browse repositories, but contributing requires them to install its CLI or desktop application. Someone encountering a bug should not have to install the forge’s software merely to report it.

The project I’m most interested in is Tangled, based mostly on gut feel. I like its focus on the social experience around code. For example, its home page immediately shows me a bunch of cool projects, exactly like old GitHub used to do. But it is still in alpha, and it remains to be seen whether it can blossom into a true alternative.

Could a boring company fill the gap?

One thing that stands out is that, apart from GitLab, every competitor is built around either decentralization or a social mission. That makes each of them fundamentally less “straightforward” than a for-profit company. It makes me wonder whether there is room for one.

Perhaps it could look more like bunny.net than a venture-backed startup: a deliberately boring company with no ambition to become the operating system for software development or to reorganize programming around whatever technology investors currently find exciting. It might simply concentrate on making open-source collaboration pleasant and reliable, charge developers and smaller organizations directly, and grow at whatever pace that revenue supports.

The open question is whether this could be a viable business. The difficult part is exactly what I keep saying is missing: shared identity, shared conventions and discovery only become valuable once a platform has reached scale. Better repository hosting alone would not solve that cold-start problem.

I don’t know who, if anyone, will solve it. But a real replacement will have to treat the social layer as the product, not as something that appears automatically once enough repositories are hosted.

联系我们 contact @ memedata.com