通过git备份还原hexo源码

Hexo博客存在一个问题:我们仅仅将博客的静态页面文件部署到了github远程仓库中,而我们的站点源文件仍在本地存储。如果存储站点源文件的电脑系统崩溃了,或者我们换了其他电脑,我们便无法实时更新博客了。
如果选择重新搭建站点,不仅过程繁琐,而且还需要大量时间安装依赖、主题配置、博客优化,极其麻烦。所以我们需要将站点必要文件也部署到远程仓库中。然而github的私有仓库是要收费的,如果用免费仓库,暴露hexo源码,尤其是配置文件是很不安全的,因为配置文件中可能含有你的隐私信息,比如各种秘钥等。所以有一个私人仓库是很有利的。你可以通过购买服务器搭建自己的git私人服务器并备份hexo源码。你也可以在coding等这样提供私人仓库的服务商进行hexo源码备份。
我们采取的远程仓库部署策略是:使用coding的私人仓库,一个仓库两个分支。仓库即[yourname.coding.me],一个分支[master]用于托管演示页面,一个分支[backup]用于备份Hexo博客站点的必要文件。

一、备份

多机同步更新的前提:backup分支(也可以是其他名称的分支或者新的仓库)

Hexo博客站点的必要文件:

1
2
3
4
5
6
7
8
.
├── scaffolds # 文章模板
├── source # 用户源文件:页面,文章markdown文件
├── themes # 主题
├── .gitignore # git忽略文件信息
├── _config.yml # 站点配置文件
├── package.json # 已安装插件映射表,下次只需npm install即直接安装表中的插件
├── package-lock.json

使git上传远程git服务器(这里是coding)时可忽略不必要的文件,做法是编辑站点根目录下的.gitignore文件,复制粘贴一下内容到.gitignore文件中。

1
2
3
4
5
6
7
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/

1.删除必要文件

删除themes/你的主题中的.git.github.gitignore等git仓库文件,只保留站点根目录下的.gitignore

2.hexo源码备份

在Hexo博客站点根目录(即blog文件夹)中打开GitBash:

1
2
3
4
5
6
$ git init                   # 将blog作为一个git仓库进行初始化
$ git checkout -b backup # 创建/切换本地backup分支
$ git add . # 将文件添加到暂存区
$ git commit -m "提交说明" # 将暂存区文件提交到本地仓库
$ git remote add origin git@git.coding.net:yourname/yourname.coding.me.git # 添加远程仓库
$ git push origin backup # 将本地仓库推送至远程仓库

如果远程已经存在backup分支,推送本地分支backup到已有的远程分支backup,达到更新远程backup的目的:

1
$ git push --force origin backup		 #git push的时候需要本地先git pull更新到跟服务器版本一致,如果本地版本库比远程服务器上的低,那么一般会提示你git pull更新,如果一定要提交,那么可以使用这个命令。

二、还原

1.还原前提

(1) 安装Git

(2) 安装nodejs

2.hexo源码还原

1
2
3
4
5
$ git clone -b backup https://git.coding.net/yourname/yourname.coding.me.git	# 克隆backup分支到本地,私有仓库需要输入用户名和密码
$ cd yourname.coding.me # 进入yourname.coding.me文件夹
$ npm install hexo --save # 安装hexo
$ npm install hexo-cli -g # 安装hexo命令行模式
$ npm install # 安装所有依赖,根据package.json自动安装之前安装过的插件

3.Git配置用户信息(新系统环境下)

在Git bash中输入:
(1)设置用户名

1
2
git config --global user.name ‘这里填写自己的用户名’ 
如: git config --global user.name 'qcmoke'

(2)设置用户名邮箱

1
2
git config --global user.email ‘这里填写自己的用户邮箱’ 
如:git config --global user.email '1667164190@qq.com'

(3)查看配置信息

1
git config --list

注意:该设置在GitHub仓库主页显示谁提交了该文件,注意这里的 - 有两个!

4.配置网络协议

  • (1) SSH协议,长期部署推荐SSH,一劳永逸。

①SSH秘钥:

1
2
3
$ ssh-keygen -t rsa -C "youremail@example.com"		# 生成rsa秘钥
$ cd ~/.ssh # 进入虚拟目录ssh文件中
$ cat id_rsa.pub # 显示id_rsa.pub文件内容

②复制秘钥至github/coding->用户setting->SSH keys,New SSH Key;

③验证是否添加成功

1
2
$ ssh -T git@github.com  # 验证github是否添加成功
$ ssh -T git@git.coding.net # 验证coding是否添加成功

④编辑站点配置文件_config.yml

1
2
3
4
5
6
deploy:
type: git
repo:
github: git@github.com:yourname/yourname.github.io.git
coding: git@git.coding.net:yourname/yourname.coding.me.git
branch: master

5.新环境下部署hexo博客

重新部署:

1
2
$ hexo clean
$ hexo g -d

6.及时更新hexo源码到coding(如果有修改hexo源码)

上传至hexo分支:

1
2
3
$ git add .
$ git commit -m "commit-message"
$ git push origin backup


----------- 本文结束 -----------




如果你觉得我的文章对你有帮助,你可以打赏我哦~
0%