Github + Hexo 搭建博客拓展知识

一、前言

相关知识要点:

二、必要配置

2.1 GitHub Pages仓库

两种类型:
User/Organization:展示用户、必须使用username.github.io、使用仓库的master分支,通过username.github.io访问
Project Pages:展示项目、没有特定命名规则、使用gh-pages分支,通过username.github.io/projectname访问

2.2 Git

2.2.1 安装Git
1.Git官方版本的安装
2.GitHub for Windows
2.2.2 配置Git
安装完Git的第一件事情就是设置用户名称和邮件地址

1
2
$ git config --global user.name"username"
$ git config --global user.email "username@example.com"

如果想隐藏自己邮件地址,可以在Github设置里选择Keeping your email address private
同时可以用以下格式配置你的邮件地址:

1
$ git config --global user.email "username@users.noreply.github.com"

2.2.3相关资料

如果已经有id_ras.pub和id_rsa,则证明已存在SSH keys。如果没有,则要生成新的ssh keys:

1
$ ssh-keygen -t rsa -b 4096 -C "your_email@excample.com" #创建一个新ssh key,以邮件地址为标签

一路回车即可。接下去向ssh-agent添加key:
首先确保ssh-agent可运行

1
2
3
4
5
$ ssh-agent -s #start the ssh-agent in the background
$ ssh-add ~/.ssh/id_rsa #添加ssh key
在github添加sshkey:
把 ~/.ssh/id_rsa.pub内容粘帖到github--personal settings--ssh keys里
最后测试链接:

ssh -T git@github.com #attempts to ssh to github

1
2
3
4
5
6
如果看到提示yes/no ,则键如yes,添加成功。
相关资料:
- [Generating SSH keys](https://help.github.com/articles/generating-ssh-keys/)
### 2.4 Hexo
检查电脑是否安装了 node.js 和 git,如果已经安装:

npm install -g hexo-cli

1
安装完成后进入blog 目录

$ hexo init

1
安装依赖包

$ npm install

1
至此,本地hexo博客已经建成

$ hexo g
$ hexo d

1
2
3
4
localhost:4000就可以看到博客了。
## 部署到github
在theme下的_config.yml修改成

deploy:
type:git
repo:对应仓库的ssh地址(比如git@github.com:username/username.github.io.git)
branch:分支(user pages为master,project pages为gh-pages)

1
另外还需要安装一个插件:

npm install hexo-deployer-git –save

1
然后再执行:

hexo g
hexo d
```
接下来,就可以用username.github.io访问你的博客了
其他主题:
可以用git clone 将别人的主题拷贝到hexo\themes下,然后将_config.yml中的theme:landscape改为对应的主题名字。

优化部署和管理

4.2 我的博客搭建流程

创建仓库,CrazyMilk.github.io;

创建两个分支:master 与 hexo;

设置hexo为默认分支(因为我们只需要手动管理这个分支上的Hexo网站文件);

使用git clone git@github.com:CrazyMilk/CrazyMilk.github.io.git拷贝仓库;

在本地CrazyMilk.github.io文件夹下通过Git bash依次执行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git(此时当前分支应显示为hexo);

修改_config.yml中的deploy参数,分支应为master;

依次执行git add .、git commit -m “…”、git push origin hexo提交网站相关的文件;

执行hexo generate -d生成网站并部署到GitHub上。

这样一来,在GitHub上的CrazyMilk.github.io仓库就有两个分支,一个hexo分支用来存放网站的原始文件,一个master分支用来存放生成的静态网页。完美( •̀ ω •́ )y!

4.3 我的博客管理流程

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

依次执行git add .、git commit -m “…”、git push origin hexo指令将改动推送到GitHub(此时当前分支应为hexo);

然后才执行hexo generate -d发布网站到master分支上。

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

4.3.2 本地资料丢失

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

使用git clone git@github.com:CrazyMilk/CrazyMilk.github.io.git拷贝仓库(默认分支为hexo);

在本地新拷贝的CrazyMilk.github.io文件夹下通过Git bash依次执行下列指令:npm install hexo、npm install、npm install hexo-deployer-git(记得,不需要hexo init这条指令)。