利用git branches备份Hexo博客文件

输入hexo d之后,Hexo根据源文件来渲染所有的页面,并部署到github上。编辑、维护文章和配置时都在本地操作,因此本地文件就显得尤为重要。一旦本地文件丢失,就无法再对博客进行维护。所以对源文件的备份是必须的。
首先需要了解一下Hexo部署的机制,Hexo在hexo deploy之后,部署到github的是编译后的文件,是用来生成网页的,并不包含hexo源文件.
说明一下情况:我的文章放在服务器上,网站托管在github,因此需要定期向github备份。万一哪天服务器抽风呢
源文件:

编译部署后:

这些编译后的文件在源文件也放了一份,它们自动生成在.deploy_git中。部署的时候就把这些文件上传到github,其他类似主题文件、配置文件都不会上传。因此解决的办法就是讲源文件做备份,上传到仓库的另一个分支。
新建分支(首次)
首先在github上新建一个HexoBackup分支,新建分支后,HexoBackup分支中的内容与main相同。

在本地(我的是windows)目录打开git bash,将新建的HexoBackup分支clone到本地,然后将除了.git文件夹以外的所有文件都删掉。

1
2
3
4
5
git clone -b HexoBackup https:
//gi
thub.com
/YuanZhou314/yu
anzhou314.github.io.git

数据下载
然后将服务器上需要备份的数据压缩打包,用FTP软件下载到windows本地。

1
2
3
4
5
tar -zcvf blog
.tar
.gz
--exclude
=blog/node_modules blog

将压缩包解压到刚才分支下载的目录,并删掉.deploy_git文件夹。此时的路径应该是这样的:

忽略文件
新建一个.gitignore文件(如果没有),将不需要的文件写进去,这些文件将不会被git上传。除了这些文件,如果之前有克隆过theme中的主题文件,那么应该把主题文件中的.git文件夹删除,因为git不能嵌套上传。总之就是检查一下是否有其他git文件,否则上传的时候会出错。
强烈建议开启隐藏文件显示:

  • Windows:文件管理器中找到【查看】>【选项】>【查看】>【高级设置】>勾选显示隐藏的文件、文件夹或驱动器

  • linux:ls -al

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    .DS_Store
    Thumbs
    .
    db
    db
    .
    json
    *.log
    node_modules/
    public
    /
    .deploy
    */

上传
然后就可以上传了,在当前目录(yuanzhou314.github.io下)依次执行如下命令即可完成备份:

1
2
3
4
5
6
7
8
9
10
11
git 
add
.
# 添加当前目录文件到暂存区
git commit -m
"add branch"
# 提交到本地仓库
git
push
origin HexoBackup
# 提交到远程仓库的HexoBackup分支


利用git branches备份Hexo博客文件
https://zhouyinglin.top/2022/08/08/利用git branches备份Hexo博客文件/
作者
小周
发布于
2022年8月8日
许可协议