代码托管网站将用户的仓库文件以网页形式发布,这就是「Pages」。利用 Pages 服务,开发者可以高效地建立项目主页,个人也可以将它当作博客,或者作品、简历展示的平台。

在 Pages 服务中,代码仓库中的是网站的源文件,托管平台的服务器扮演了远程主机的角色。为了让网页能够正常访问,托管平台也会同时提供域名、SSL 证书等「配件」。代码托管平台本身以及其 Pages 大多是免费的,这意味着可以省去服务器、域名以及证书的高额费用,所以 Pages 是建设简单网站和试水建站的不二之选。

目前,国内可访问的,提供 Pages 服务的主流代码托管平台主要有三家:微软旗下的 GitHub;开源中国旗下的 Gitee (码云)和与腾讯合作的 Coding;网上的 Pages 建站教程也大都关于这三个平台。它们提供的服务有什么差别?我们又应该如何选择呢?

TL;DR

开通条件

有一些平台将 Pages 设计为一个独立的功能,另一些则把它和其他仓库设置放在一起。不同平台由于设计或者所在国家法律法规的原因,为其规定了不同的开通条件。

三个平台的基础功能包括 Pages 的使用都是免费的。你首先需要在它们的官网中注册一个帐号,创建一个代码库,然后在代码库设置中寻找 Pages 服务的入口,从这里三家开始不同了起来。

GitHub 相对来说条件最为宽松,你只需要在仓库的 Settings > Option 中找到 GitHub Pages 栏目,点击启用,等待一小会儿,系统就会给出项目的网址。不需要电话或者实名认证,也不需要开启任何额外的功能,即使把仓库的全部 Feature 都关了,也不影响 GitHub Pages 的运行。唯一有限制的是,只有公共库(Public)的 Pages 是免费的,如果想要在私有库(Private)开通 GitHub Pages,必须要升级为 GitHub Pro,Pro 服务 $4 每月,$48 每年。

pagesgithub

Gitee 各方便都很像 GitHub。注册同样可以只用邮箱,但进入界面后,会提醒你绑定手机,正常使用可以忽视这个提醒。你需要开通 Pages 时,在服务下拉菜单中,选择 Gitee Pages,此时会提醒你绑定手机以及进行实名认证(Update 2021-08-16)。 实名后,设置部署分支,点击部署,然后等待部署执行完毕便能看到访问网址。Gitee 私有仓库同样可以免费使用 Pages 服务。开启后,你可以选择暂停以暂时停止此服务,此时网页将无法访问。

pagesgitee

Coding 从注册到开启 Pages 服务都最复杂。如果你没有 Coding 帐号,要先创建一个组,你将成为这个组的管理员,然后必须使用手机号创建一个自己的帐号。为了开启 Pages 服务,这个组的管理员(此处就是你自己)必须要使用身份证号和真实姓名实名认证。这一切完成后,进入代码仓库 > 项目设置 > 功能开关,确保「代码仓库」和「持续部署」模块功能打开,最后,在代码仓库左侧的火箭图标中选择静态网站,填写一些设置,点击保存,会跳转到部署网页,点击右侧的立即部署才算完成。Coding 支持私有库免费的 Pages 服务,但收费标准是组中的人数,当组的人数超过 5 人时,就需要付费。

pagescoding

开通条件对比表格如下:

对比项/平台 GitHub Gitee Coding
不要手机
不要实名认证
支持私有库 付费

配套服务

网站成功运行离不开一些配套的服务:像是网站的域名设置,SSL 证书,相关的实用功能等等。虽然网站一旦运行,我们便很少进入代码库去操作,很多东西也可以使用第三方服务,但这些配套服务对于刚上手的人来说还是非常重要的。

对于网站的门面域名,默认情况下,GitHub 和 Gitee 都以代码库的库名为基础加上各自的后缀,也有特定库名精简域名的特性,而 Coding 的域名生成条件不明,但肯定不能够自定义,系统会给你一串奇怪的字符作为域名。GitHub 和 Coding 可以绑定自己的域名, Gitee 的自定义域名功能需要 Gitee Pages Pro,但我不清楚个人购买此服务的方式。

安全性方面,三家都支持强制 https,SSL 证书也都是免费的, GitHub 域名证书颁发机构为 Let's Encrypt,Gitee 证书由 TrustAsia 提供,而 Coding 则使用 Let's Encrypt 的服务。需要注意的是,若需要自定义域名,绑定域名后要再申请证书。

Giteepagespro

自动部署功能——用户提交更新后自动部署为网页——影响 Pages 服务的日常使用体验。GitHub 和 Coding 都能在检测到更新后自动部署到网站,Gitee 免费版只支持手动部署,需要 Pro 版本才有自动部署功能,也就是说,向代码库提交一次更新之后,需要访问 Gitee Pages 页面手动点击更新,才能看到网站变化。

codingpagsautp

其他的配套服务往往和代码库相关,三家虽然提供给用户的仓库大小不同,不过对于体积非常小的网站而言,对比起来并没有意义,肯定是够用的。三家中,GitHub 提供了一些出彩的功能:issues 模块可以结合 Gittalk 用作评论(要求公共库),评论内容会直接进入仓库的 issues;GitHub Pages 设置中还提供了一些网页模板,用来做一些简单页面还是够用的。

配套服务对比表格如下:

对比项/平台 GitHub Gitee Coding
默认域名示例 name.github.io name.gitee.io dsd5a2w.coding-pages.com
自定义域名 付费
自动部署 付费 可选
特色功能 Issues 用作评论,模板,Action,各种第三方应用 TCB 文件网盘

访问体验

这里访问体验包括上传(pull)和访问网站两个方面,大致可以从速度和稳定性两个维度去考察。个人认为,就静态博客而言,只要速度不是太慢,以致于一两分钟加载不出来,都是在可接受范围之内的。由于网站访问体验收到宽带提供商,代理设置等多方面影响,因此下面提到的数据可能并不能反映实际使用情况。

GitHub Pages 的地址在美国,Ping 值区域差别较大,我这里大概在 100 以下,会有丢包现象,有时比较严重(以下图片来源 站长之家;白色地区为未检测完)。

githubblog


Gitee Page 服务器地址显示为上海,ping 值全国各地区大都在 50 以下,没有丢包。

giteeblog


Coding 服务器在新加坡,Ping 值在 100 以下,没有丢包现象。但个人遇到了两三次完全的无法访问现象,没有官方说明,不清楚具体情况。

Codingblog

在笔者的使用过程中,Gitee 无论在访问速度还是稳定性上都非常优秀,GtiHub 和 Coding 服务器都不在大陆地区,所以访问有一些慢。不过虽然数值上 Coding 强于 GitHub,但GitHub 大部分时间体验比 Coding 体验更好,Coding 有时会完全无法访问。

对比项/平台 GitHub Gitee Coding
ping /ms 50 - 100 0 - 50 50 - 100
丢包 0 - 50 % 0 0
服务器 美国 大陆 香港/新加坡等地
主观体验

Update 2021-08-16:评论区读者反馈,Coding 目前可以选择中国大陆的服务器。

建议

Gitee 在国内的访问体验是一流的,问题在于无法自动部署和绑定域名,用作项目首页等不经常更新,也不需要自定义域名的网站还是挺好。如果有了企业版加持,其 Pages 服务在国内绝对是三者中最优秀的。

GitHub Pages 在海外的速度较好,国内体验因地域、网络提供商而异,但各种服务提供的最全,也是最主流的一种方案。如果担心用户不能访问,可以考虑使用Cloudflare Pages 等第三方服务。

Coding Pages 个人不推荐。评论区有读者反馈目前需要收费,有免费额度。如果是这样的话,个人建议使用腾讯推出的「静态网站托管」服务,或者使用腾讯的对象存储 + CDN 服务,小流量网站的话大概一月 0.3 元。