新建一个名为 y0ngb1n.github.io
的仓库,格式为:<username>.github.io
。html
GitHub 为咱们提供了一个二级域名 <username>.github.io
,若是咱们为本身的某个项目开启了 GitHub Pages 功能后,咱们可使用 http(s)://<username>.github.io/<projectname>
进行访问,这样咱们能够为每一个项目添加上项目展现的 Pages;当咱们「新建一个名为 <username>.github.io
—本身对应的二级域名—的仓库」时,GitHub 会将该仓库路由为咱们的我的主页,可以使用 http(s)://<username>.github.io
进行访问。git
按照仓库页面上的提示进行操做便可:github
# 初始化 git 仓库 git init # 进行版本控制 git add . # 提交 git commit -m ":tada: init hexo" # 添加远程仓库(GitHub)地址 git remote add origin https://github.com/y0ngb1n/y0ngb1n.github.io.git # 推送代码 git push -u origin master
过程会提示输入账号密码,推送成功后,刷新仓库页面后便可看到咱们提交的源码了。npm
先使用 Hexo 进行编译:缓存
# 清除缓存,可选 hexo clean # 编译 hexo g
而后使用 hexo-deployer-git
插件进行部署:bash
# 安装插件 npm install hexo-deployer-git
修改 _config.yml
:hexo
deploy: type: git repo: git@github.com:y0ngb1n/y0ngb1n.github.io.git branch: gh-pages
这里使用 SSH
协议,由于只能走 Git 协议,走 HTTPS 协议会报错;关于 SSH
的请参考「Connecting to GitHub with SSH」、「SSH 原理与运用(一):远程登陆」。ssh
而后进行部署:gitlab
hexo d
部署成功后,会自动在远程仓库建立 gh-pages
分支。spa
本来是想部署 gh-pages
分支的,结果只能部署 master
分支,因为咱们的 master
分支上没有 index.html
文件,因此访问主页时出现了 404;
经验证:是因为咱们的仓库使用了二级域名的方式,GitHub Pages 只能部署 master
分支,且不能选择,若是把名字改成别的(如 blog
),此时就能选择部署哪一个分支了。
我想到的有两个解决方案:
调整分支策略:
master
:编译后的静态资源source
:博客源码修改仓库名(如 blog
):
/blog
后缀进行访问(能够自定义域名解决)这里我选择方案 1(调整分支策略):
# 查看全部分支 $ git branch -a ls * master remotes/origin/master # *先在仓库设置中将 gh-pages 设置为默认分支(不然没法删除 master 分支) # 重命名本地 master 分支为 source $ git branch -m master source # 删除远程 master 分支 $ git push --delete origin master To github.com:y0ngb1n/y0ngb1n.github.io.git - [deleted] master # 上传新的 source 分支 $ git push origin source To github.com:y0ngb1n/y0ngb1n.github.io.git * [new branch] source -> source
而后修改 _config.yml
,将编译后的静态部署至 master
分支:
deploy: type: git repo: git@github.com:y0ngb1n/y0ngb1n.github.io.git branch: master
修改完成后,执行 hexo d
进行编译部署,直到远程仓库出现新的 master
分支,命令以下:
$ hexo d INFO Deploying: git INFO Clearing .deploy_git folder... INFO Copying files from public folder... INFO Copying files from extend dirs... On branch master nothing to commit, working tree clean remote: remote: Create a pull request for 'master' on GitHub by visiting: remote: https://github.com/y0ngb1n/y0ngb1n.github.io/pull/new/master remote: Branch 'master' set up to track remote branch 'master' from 'git@github.com:y0ngb1n/y0ngb1n.github.io.git'. To github.com:y0ngb1n/y0ngb1n.github.io.git * [new branch] HEAD -> master INFO Deploy done: git
此时 github-pages
监测到 master
分支有更新,会更新部署,此时访问 https://y0ngb1n.github.io/ 终于看到了期待以久的 Hexo 博客页面。
由于咱们调整了分支策略,因此此时 source
分支才是咱们的主分支了,在设置中把 source
设置为默认分支,而后再把 gh-pages
分支从远程仓库中删除掉。
# 删除远程 gh-pages 分支 $ git push --delete origin gh-pages To github.com:y0ngb1n/y0ngb1n.github.io.git - [deleted] gh-pages
至此就大功告成啦!🎉🎉🎉
只有 GitHub 可能免费托管吗?
固然不止啦,其它平台也有提供这样的 Pages 功能,如: