代码托管放 GitHub 还是 Gitee

去年有一次我连着两天推不上代码,访问一直超时,只能先把改动压在本地。那次之后我认真想过代码托管放 GitHub 还是 Gitee 这个问题,最后的做法是两边都留,但分工明确。这篇文章把判断维度摊开讲。

结论先给:要社区、要工具链、要长期可迁移,用 GitHub;要国内访问的稳定和速度,用 Gitee。我自己的项目是主库一个、备用一个,不做双写。

一、五个维度上的实际差别

| 维度 | GitHub | Gitee |

|---|---|---|

| 国内访问 | 时不时机房波动,克隆和推送偶尔超时 | 通常更稳,速度更可控 |

| 社区与生态 | 开源项目、议题讨论、可参考的实现多 | 中文项目多,整体体量小 |

| 自动化能力 | 内置的流水线功能成熟,配置方式统一 | 也有流水线,可用额度与规则需以官方口径为准 |

| 迁移成本 | 仓库本身是标准 Git,可整体搬走 | 同样是标准 Git,可整体搬走 |

| 合规与合规审查 | 面向境外的服务,规则按平台官方口径执行 | 面向境内的服务,规则按平台官方口径执行 |

最后一行我要特别说明:两边的政策都会调整,具体条款、可用额度、审核规则,都以平台官方口径为准,我不在这里写具体数值。

二、什么情况优先 GitHub

三种情况我会优先 GitHub。

第一,这个项目以后可能要给别人看。不管是找活、还是想让人参考实现,GitHub 上的主页是国内技术圈最容易验证的东西。

第二,你需要用到成熟的自动化能力。我的项目里跑测试、构建产物、发布流程都挂在托管平台上,这块的配置方式在 GitHub 上更统一,出问题也更容易搜到答案。

第三,你想参考别人的实现。搜一个具体的技术问题,能直接翻到别人的仓库和历史讨论,这个价值在单人项目里很高——你缺的往往不是想法,是别人踩过的坑。这也跟工具越用越多,我砍到只剩四个是同一个思路:工具的第二个价值是它带来的外部信息。

三、什么情况优先 Gitee

主要就一种:你的日常开发节奏不能被网络打断。

对广州以外的网络环境我不敢下结论,但对我自己的情况,国内托管在推送稳定性上有明显优势。代码推不上去,当天的工作就没法收尾,这个成本比社区价值更直接。

第二种情况是项目需要面向境内用户展示或交付。这类场景下,访问速度本身就是交付质量的一部分。

四、我的选择和理由

我的主库放在 GitHub,同时在国内平台留一份镜像。

这么安排的理由是:主库决定我平时用什么工具,镜像库决定我在推不上去的时候还能不能干活。两边都是标准 Git 仓库,真要整体迁移,改动成本很低,不会被锁住。

需要提醒的一个细节:镜像不做双向同步。我以前试过双向,结果是两边都有提交、都要处理冲突,最后乱到分不清哪个是最新。现在只做单向推送,来源永远只有一个。

不管你选哪边,分支怎么用是另一个问题,我在一个人写代码,分支策略还要不要里单独写过。

常见问题

Q:代码托管选 GitHub 还是 Gitee,一个人怎么选?

A:看你的日常会不会被网络打断。会,就选国内平台做主力;不会,选 GitHub,生态和工具链更省事。也可以主备各一,但别做双向同步。

Q:两个平台同时用,会不会很麻烦?

A:单向推送不麻烦,配一次就行。麻烦的是双向同步,两边都可能产生提交,冲突处理会拖垮你。

Q:私有仓库放哪边更安全?

A:安全性取决于平台的安全策略和你自己的密钥管理,具体条款以平台官方口径为准。不管放哪边,密钥不要进仓库这一条都不会变。

相关阅读


本文作者西米,37 岁程序员,一个人加五个 AI 员工在跑一家公司。踩过的坑和真实账本都写在公众号「西米分享」。

完整代码、踩坑清单与最新进展,都在公众号。

📱 关注公众号「西米分享」