一、前言

Hexo部署到GitHub上的文件,是.md(你的博文)转化之后的.html(静态网页)。因此,当你重装电脑或者想在不同电脑上修改博客时,就不可能了(除非你自己写html)。

其实,Hexo生成的网站文件中有.gitignore文件,因此它的本意也是想我们将Hexo生成的网站文件存放到GitHub上进行管理的(而不是用U盘或者云备份啦)。这样,不仅解决了上述的问题,还可以通过git的版本控制追踪你的博文的修改过程,是极赞的。

但是,如果每一个GitHub Pages都需要创建一个额外的仓库来存放Hexo网站文件,我感觉很麻烦(10个项目需要20个仓库…)。

所以,我利用了分支!!!

简单地说,每个想建立GitHub Pages的仓库,起码有两个分支,一个用来存放Hexo网站的文件,一个用来发布网站。

下面将我的博客搭建流程简单讲一下

二、 我的博客搭建流程

  1. 创建仓库,yourname.github.io;
  2. 创建两个分支: master(这个分支主要用来展示静态网页,给用户看的User Pages)和hexo(这个分支主要是用来备份Projects Pages);
  3. 设置hexo为默认分支;
  4. 使用git clone git@github.com:yourname/yourname.github.io拷贝仓库,拷贝完成后,本地会有一个yourname.github.com文件夹;
  5. 由于hexo init dir命令不能在非空的dir下执行成功,所以先找一个文件夹(例如blog)建立一个博客,也就是依次执行下面命令:

    1
    2
    3
    hexo init blog
    npm install
    npm install hexo-deployer-git --save
  6. 将上面blog文件夹下所有的文件全部拷贝到刚刚clone下来的yourname.github.io文件夹里面。

  7. 修改yourname.github.io/_config.yml中的deploy参数,分支应该为master

    1
    2
    3
    4
    deploy:
    type: git
    repo: git@github.com:yourname/yourname.github.io.git
    branch: master
  8. 依次执行下面命令,将网站相关的文件备份到github上。

    1
    2
    3
    git add .
    git commit -m "your comments"
    git push origin hexo
  9. 然后执行hexo相关,命令生成网站,并部署到Github上:

    1
    2
    3
    hexo clean #清楚缓存,若是网页正常情况下可以忽略这条命令
    hexo g # 生成 是hexo generate
    hexo d # 部署 是hexo deploy

如此操作,在Github上的heany.github.io仓库就有两个分支,一个hexo分支用来存放网站的原始文件,一个master分支用来存放生成的静态网页~效率超高,不用再新建一个repository去备份网站文件了!是不是很好~

三、 博客日常管理流程

3.1、 日常修改

在本地对博客进行修改(添加新博文、修改样式等等)后,通过下面的流程进行管理:

  1. 依次执行git add .git commit -m “…”git push origin hexo指令将改动推送到GitHub(此时当前分支应为hexo);
  2. 然后才执行hexo generate -d发布网站到master分支上。

虽然两个过程顺序调转一般不会有问题,不过逻辑上这样的顺序是绝对没问题的(例如突然死机要重装了,悲催….的情况,调转顺序就有问题了)。

3.2、 本地资料丢失

当重装电脑之后,或者想在其他电脑上修改博客,可以使用下列步骤:

  1. 使用git clone git@github.com:yourname/yourname.github.io.git拷贝仓库(默认分支为hexo);
  2. 在本地新拷贝的yourname.github.io文件夹下通过Git bash(windows下使用。若是linux则在bash里面直接执行)依次执行下列指令:npm install hexonpm installnpm install hexo-deployer-git记住不需要hexo init这条指令)。

四、 结束语

Github Pages支持域名绑定的,可以去Godday上买一个比较便宜的域名,然后在国内的DNSPod上去解析你的域名,。具体参考这篇文章摸我前往

到这里结束了,好累啊~~~