概述
GitHub Pages 是一种静态站点托管服务,旨在直接从GitHub存储库托管您的个人,组织或项目页面,详细的文档可阅读 GitHub Pages文档。
利用 GitHub Pages 搭建个人博客的主流方案有以下两种:
GitHub Pages
参考 GitHub Help
GitHub Pages 的使用基本有以下三种方式:
- 通过创建一个名为
<yourname>.github.io的项目 - 通过在任一项目中创建一个名为
gh-pages的分支 - 通过在任一项目的
master分支中,创建一个名为docs的文件夹
以上三种方式都可以启用 GitHub Pages 功能,当然三个也可以同时使用,拥有多个 GitHub Pages, 但通常我们使用第一种方式来搭建一个个人的博客。
接下来我们列举每一种方式的使用。
创建 <yourname>.github.io 项目使用 GitHub Pages
通过创建一个名为 <yourname>.github.io 的项目的方式来使用 GitHub Pages 主要包含以下几步:
- 注册一个 github 账号
- 创建一个
<yourname>.github.io的工程 - 在工程的
master分支根目录下创建一个index.html或index.md的文件 - 访问
http://<yourname>.github.io就可以看到你的页面了
注:
- 这种方式 GitHub Pages 使用的是
master分支 master根目录下必须要有index.html或index.md的文件。<yourname>.github.io中的<yourname>应该和图中箭头标志部分一致,设置不对,GitHub Pages 不会生效。

创建 gh-pages 分支使用 GitHub Pages
通过创建一个名为 gh-pages 分支的方式来使用 GitHub Pages 主要包含以下几步:
- 注册一个 github 账号
- 在一个新工程(工程名随意)或在已有工程中拉取一个名为
gh-pages的分支 - 在
gh-pages分支的根目录下创建一个index.html或index.md的文件 - 检查 project 的
setting中的GitHub Pages部分正确设置了分支,如图:

- 访问
http://<yourname>.github.io/<projectName>就可以看到你的页面了
注:
- 这种方式 GitHub Pages 使用的是
gh-pages分支 - 分支名必须为
gh-pages http://<yourname>.github.io/<projectName>中yourname见前面的描述,projectName为gh-pages分支所在项目的项目名。gh-pages根目录下必须要有index.html或index.md的文件。
创建 docs 文件夹使用 GitHub Pages
通过创建一个名为 docs 文件中的方式来使用 GitHub Pages 主要包含以下几步:
- 注册一个 github 账号
- 在一个新工程(工程名随意)或在已有工程的
master下,创建一个名为docs的文件夹 - 在
docs文件中创建一个名为index.md的文件 - 检查 project 的
setting中的GitHub Pages部分正确设置了分支,如图:

- 访问
http://<yourname>.github.io/<projectName>就可以看到你的页面了
注:
- 这种方式 GitHub Pages 使用的是
master分支下docs文件夹中的文件。 - 文件夹名必须为
docs http://<yourname>.github.io/<projectName>中yourname见前面的描述,projectName为gh-pages分支所在项目的项目名。docs根目录下应该有index.md文件。
GitHub Pages 绑定自己的域名
- 购买域名
- 将域名解析映射到你 github pages 的网址。
- 在你 github pages 中设置里的 Custom domain 填写购买的域名即可。
GitHub Pages + jekyll
通过利用 GitHub Pages + jekyll ,很轻松得就可以搭建一个个人的博客。
jekyll 是一个 ruby 的 gem 包,所有在使用前,需要你机器中安装了 ruby。
安装 ruby
ruby的安装可参考:
安装好 ruby 后,运行以下命令,应该就可以看到 ruby 和 gem 的版本。1
2ruby -v
gem -v
安装 jekyll
参考资料:
- 可参考ruby-china配置 gem 源,这样安装的时候会快些
- jekyll 文档
执行以下命令安装 jekyll:1
gem install jekyll bundler
查看 jekyll 和 bundler 版本1
2jekyll -v
bundle -v
创建一个 jekyll 项目
运行下面命令,新建一个 jekyll 项目:1
jekyll new proj
得到的项目目录结构大概像下面这样:1
2
3
4
5
6
7
8
9proj
├── 404.html
├── about.md
├── _config.yml
├── Gemfile
├── Gemfile.lock
├── index.md
└── _posts
└── 2018-07-18-welcome-to-jekyll.markdown
在github上创建<yourname>.github.io工程
这里可参考前文的介绍
将jekyll 项目推送到github上
在github上新建新建一个<yourname>.github.io的工程,然后将proj下的所有文件推到你新建工程的master分支中。访问http://<yourname>.github.io即可看到页面。
本地预览
访问http://<yourname>.github.io可看到你的github pages页面,如果要做本地预览,可运行:1
jekyll serve
访问 http://localhost:4000 即可。
备注
- 除了 上述列出的文件是必须推送到github外,其他开发过程中生成的文件,可选择性忽略或推送上去
- 更多 jekyll 使用,可参考 jekyll 文档
- 要写博客,直接在
_posts文件夹下,新建一个yyyy-mm-dd-your-post-name.md的文件即可。 - 新加的文章,文件名必须以
yyyy-mm-dd-的形式开头
GitHub Pages + Hexo
利用 GitHub Pages + Hexo 的方式,也是可以很方便搭建和管理个人博客的。
Hexo 是一个 npm 包,使用 hexo 需要安装 nodejs 和 npm。
安装 nodejs 和 npm
通常NPM是随同NodeJS一起安装的,所以当你按装好nodejs后,npm也随之安装好了。
安装 Hexo
Hexo 有详细中文文档这里就不细介绍,可参考
创建一个 Hexo 工程
运行下面命令,新建一个 Hexo 项目:1
hexo init proj
得到的项目目录下至少会包含以下目录:1
_config.yml node_modules package.json package-lock.json scaffolds source themes
在github上创建<yourname>.github.io工程
这里可参考前文的介绍
发布到 guthub pages
hexo 与 jekyll 不同,不能直接通过推送整个工程,来生成博客。可通过以下两种方式发布:
- 运行
hexo generate生成所有静态文件到public文件夹中,然后将public下的所有文件推送到<yourname>.github.io工程的master分支中。 - 同配置hexo,运行
hexo deploy,自动发布(推荐使用)
接下来详细说明第二种,以 git 为例,更多可参考hexo 部署。
安装依赖
1
npm install hexo-deployer-git --save
修改
_config.yml文件中的以下部分1
2
3
4deploy:
type: git
repo: git@github.com:chen-kunhui/chen-kunhui.github.io.git
branch: master
注:将 repo 部分更换成你工程的 clone 链接。
- 运行以下命令部署
1
hexo deploy
注: 如果部署没生效,可运行hexo clean 再运行上面命令。
- 访问
http://<yourname>.github.io即可看到部署的页面。
本地预览
访问http://<yourname>.github.io可看到你的github pages页面,如果要做本地预览,可运行:1
hexo server
访问 http://localhost:4000 即可。
备注
详细使用,可阅读hexo 文档
其他
GitHub Pages 网站受有使用限制:
- GitHub Pages源存储库的限制为1GB。
- 发布的GitHub Pages网站可能不超过1GB。
- GitHub的网页的网站有一个每月100GB的带宽限制。
- GitHub Pages网站的限制为每小时10个版本。