使用Hexo在github搭建的博客,博客作为一个单独的GitHub仓库存在,但是这个仓库只有生成的静态网页文件,并没有Hexo的源文件,如果要换电脑或者重装系统后,就比较麻烦了,这里推荐一种方法。
备份
- 创建仓库WincerChan.github.io,如果同名仓库之前已经创建,请将之前的仓库改名,新建的仓库必须是Username.github.io;
- 创建两个分支:master和hexo;
- 设置hexo为默认分支;
- 将刚刚创建的新仓库
clone
至本地,将之前的hexo文件夹中的_config.yml
,themes/
,source/
,scaffolds/
,package.json
,.gitignore
复制至WincerChan.github.io文件夹; - 将themes/next/(我用的是NexT主题)中的
.git/
删除,否则无法将主题文件夹push; - 在WincerChan.github.io文件夹执行
npm install
和npm install hexo-deployer-git
(这里可以看一看分支是不是显示为hexo); - 执行
git add .
、git commit -m ""
、git push origin hexo
来提交hexo网站源文件; - 执行
hexo g -d
生成静态网页部署至Github上。
这样一来,WincerChan.github.io仓库就有master分支和hexo分支,分别保存静态网页和源文件。
修改
在本地对博客修改(包括修改主题样式、发布新文章等)后:
- 依次执行
git add .
、git commit -m ""
、git push origin hexo
来提交hexo网站源文件; - 执行
hexo g -d
生成静态网页部署至Github上。
即重复备份的7-8步骤,以上两部没有严格的顺序。
恢复
重装电脑后,或者在其它电脑上想修改博客:
- 安装git;
- 安装Nodejs和npm;
- 使用
git clone git@github.com:WincerChan/WincerChan.github.io.git
将仓库拷贝至本地; - 在文件夹内执行以下命令
npm install hexo-cli -g
、npm install
、npm install hexo-deployer-git
。
附录
这里稍作说明:
添加ssh-keys
- 在终端下运行:
ssh-keygen -t rsa -C "yourname@email.com"
,一路回车; - 会在.ssh目录生成
id_rsa
、id_rsa.pub
两个文件,这就是密钥对,id_rsa是私钥,千万不能泄漏出去; - 登录Github,打开「Settings」-->「SSH and GPG keys」,然后点击「new SSH key」,填上任意Title,在Key文本框里粘贴公钥id_rsa.pub文件的内容,注意不要粘贴成
id_rsa
,最后点击「Add SSH Key」。
hexo的源文件
这里说一下步骤4为什么只需要拷贝6个,而不需要全部:
-
_config.yml
站点的配置文件,需要拷贝; -
themes/
主题文件夹,需要拷贝; -
source
博客文章的.md文件,需要拷贝; -
scaffolds/
文章的模板,需要拷贝; -
package.json
安装包的名称,需要拷贝; -
.gitignore
限定在push时哪些文件可以忽略,需要拷贝; -
.git/
主题和站点都有,标志这是一个git项目,不需要拷贝; -
node_modules/
是安装包的目录,在执行npm install
的时候会重新生成,不需要拷贝; -
public
是hexo g
生成的静态网页,不需要拷贝; -
.deploy_git
同上,hexo g
也会生成,不需要拷贝; -
db.json
文件,不需要拷贝。
其实不需要拷贝的文件正是.gitignore
中所忽略的。
本文转自我的博客:
原始链接:https://blog.itswincer.com/posts/7efd2818/
文章作者:_小二上酒(WincerChan)
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)