知名开发者和项目为何逃离 GitHub?另谋高就还是另有隐情?
概述
一些知名开发者及其项目正纷纷离开 GitHub,转而投向其他代码托管平台,甚至选择自行搭建托管方案。他们为何要离开?跳出 GitHub(以及其背后的微软)这个巨头的“围墙”,又是怎样一番体验?
正文
长久以来,GitHub 一直是开源项目托管的首选之地。它并非唯一的选择,只是最受欢迎、最便捷的那个。然而,如今不少知名项目纷纷告别 GitHub,并且直言离开的缘由。那么,想要离开 GitHub 的人有哪些选择?做出这一转变又有多难呢?
先来说说那些已经离开的项目。其中,Zig 编程语言是较大的一个。Zig 备受瞩目,因为它有望取代 C 语言,而且据说比 Rust 等语言更简单。自几年前微软收购 GitHub 起,Zig 的开发者就决心离开。而近期 GitHub 基础设施的状况,更是成了压垮骆驼的最后一根稻草。用他们的话说:“过去响应迅速的功能,如今变得迟缓,甚至常常完全失灵。最重要的是,GitHub Actions 存在不可原谅的漏洞,却完全无人问津。”于是,Zig 迁移到了竞争对手 Codeberg 平台。Codeberg 是那些离开 GitHub 的人经常提及的替代方案之一。
另一位告别 GitHub 的知名人物是 Mitchell Hashimoto,他是 Vagrant 和 Ghost TTY 的创造者。作为使用 GitHub 数十年的资深用户,今年 4 月他宣布,自己的关键项目之一 Ghost TTY 将离开 GitHub。他的理由与很多人不谋而合:“GitHub 不再可靠,在这里工作不再有乐趣。我想好好工作、发布软件,可它却处处掣肘。”截至 2026 年 7 月,Ghost TTY 的 GitHub 仓库仍在更新,但 Hashimoto 表示迁移需要时间,所以他们离开只是早晚的事。
由此可见,人们离开 GitHub 的原因并非只是出于意识形态,也不是单纯为了抗议微软或闭源软件。这些都是实际问题,其中大部分都围绕着 GitHub Actions,该功能在一段时间内一直以可靠性差而闻名。
对于想离开 GitHub 的人来说,有两个基本选择。一是选择像 GitLab 或前文提到的 Codeberg 这样的竞争平台。Codeberg 基于 ForgeJoe 构建,而 ForgeJoe 是开源项目 Gitea 的一个分支。Codeberg 由非营利组织运营,理论上比微软旗下的 GitHub 更具透明度和责任感。另一个大型竞争平台 GitLab,其部分组件是开源的,你可以自行托管。不过,企业级服务是专有软件,正是这些服务支撑着公共互联网上的 GitLab。
另一个选择,正如前文所暗示的,是自行托管。你可以搭建自己的服务器,运行像 Codeberg 等平台所使用的开源组件,比如 Gitea 项目,或者 GitLab 的开源版本。但自行托管是最复杂、最困难的选择,因为你要负责一切,包括托管、技术支持、基础设施更新、备份、用户管理等等。不过,好处是一切完全由你掌控。如果只有你和少数几个人使用,这或许是个不错的选择。
那么,无论是自行托管还是选择竞争平台,离开 GitHub 到底有多难呢?从理论上讲,迁移仓库就像克隆它一样简单,因为 Git 是开源的,所有这些平台都基于 Git。但问题在于,GitHub 的吸引力很大程度上来自其专有功能,比如 CI/CD 集成系统。通常,竞争平台会提供一些自动化迁移的方法。例如,Codeberg 有一个内置的迁移工具,可以直接从 GitHub 迁移项目。但如果你的项目使用了 GitHub 特定的功能,如 GitHub Actions,迁移就会成为一大障碍。虽然 Codeberg 支持将这些功能迁移到类似的功能上,但目前仍处于实验阶段。如果你想在本地使用类似 GitLab 的工具来复制 GitHub Actions,也需要做一些工作。
即便为了项目托管而离开 GitHub,也不意味着要完全抛弃它。有些项目虽然从 GitHub 迁移出去,但仍将 GitHub 作为项目的被动镜像,用作备份服务,或者让其他 GitHub 用户可以轻松访问项目,但不会通过 GitHub 接受拉取请求等操作。这样做的目的是避免将 GitHub 作为项目托管的主要依赖。
这种大规模的“出走”会对 GitHub 在开发者中的整体受欢迎程度造成多大影响呢?就目前来看,离开的项目在统计上占比并不显著。但像我提到的那些知名项目,它们在开发者中具有较高的知名度,或者有大量开发者参与其中。如果其中一些项目离开,可能会形成一种趋势。不过,我认为不太可能出现大规模的逃离。我看到的是,更多项目会更自由地选择托管平台和方式,尤其是那些规模较小、团队紧密的项目,它们不必急于迎合大型团队或公司的需求。
对我来说,这才是关键所在。GitHub 就像一个引力中心,这种局面很难轻易改变,即便改变也是渐进式的。在软件开发领域的某些角落,比如我提到的那些小项目团队,可能会发生较大的转变,但对于其他开发者来说,可能只会有轻微的变化,甚至毫无影响。我们可能会看到一些知名开发者带着他们的项目离开,带走不少人,但绝大多数开发者仍会留在 GitHub。
这里其实存在一个讽刺之处。GitHub 的基础——Git,最初是为了取代专有工具 Bitkeeper 而创建的。Git 本身仍是开源的,但基于它构建的商业专有产品 GitHub,却成了大家的首选平台。除非微软提升 GitHub 的稳定性,并做出一些急需的改变,否则即使那些不介意使用微软旗下产品的开发者,也会另寻他处,而现在看来,他们已经开始这么做了。
以上就是本期的全部内容。如果你喜欢,请在下方留言。