利用 Github 博客仓分支备份博客源文件
别看了,虽然达到了目的,但这文章有很多无用功,不要被我误导。详情直接看评论区
前言
这两天通过@星日语大佬的Stellar更新&备份教程,总算是把如何以blog仓的子仓方式使用Stellar搞明白了,教程当中有讲到如何通过手动备份与插件备份的方式备份主题文件。因为觉得既然在做备份了,那把整个blog的源文件都备份下来不是更好吗?在以上的教程中学会了git命令的简单运用,于是萌生出一个情景:
博客更新后,通过 hexo d
部署静态网页,接着通过 git push
备份源文件
在得知方法是可行的之后,着手把它变成现实,在这里记录下过程。
如果你的博客仓是开源的,这样做的话所有人都能拿到你备份的源码,你也不想别人照搬你的网页是吧!
具体步骤
一、创建备份存储分支
1、创建分支
在blog所在的github仓创建一个新的分支用于存储备份文件
点击blog仓的分支标签 main ,输入需要创建的分支名称,点击 create branch:BAK from main
2、设置默认分支
将新建的分支设置为仓库的默认分支
进入仓库的设置页面,选择左侧 Code and automation
下的 Branches ,在右侧你会看到目前的默认分支为 main ,点击后面的 ⇆
在弹出窗口下拉菜单里选择刚刚创建的分支,点击Update
再弹出的警告里点击 I understand, update the default branch.
成功的话顶部会有 Default branch changed to BAK 提示,也可以在 Default branch 里看见默认分支已经被更改。
二、clone博客仓库到本地
1、clone仓库
在你电脑上新建一个文件夹作为博客仓的本地仓库,在终端里进入到这个文件夹并执行:
1 | git clone git@github.com:用户名/仓库名.git |
当看到 Resolving deltas: 100% (xxx/xxx), done.
即已经克隆成功 :
1 | skyreeves@SkydeMBP ~ % git clone git@github.com:skyreeves/blog.git |
这一步的clone命令需要ssh秘钥支持,不过既然都搭建好了博客,那秘钥相比已经是没问题的吧~
2、调整本地仓文件
我们是基于最初的 main
分支创建的新的分支并clone到本地的,在本地仓会有静态网页的文件,而静态文件在每次更新博客的时候都会用 hexo g
生成,所以不需要备份。
首先在克隆仓库的文件夹里把这些静态网页文件全删掉。
那为什么不一开始就新建空白分支呢,因为我不会
然后去之前博客所在文件夹里,将博客源文件复制过来,可以把所以文件都丢过来,也可以只复制这几个_config.yml
、_config.stellar.yml
、package.json
、.gitignore
,以及文件夹 themes/
、source/
、scffolds/
其中
.gitignore
是隐藏文件。windows在文件夹选项里点选显示隐藏的文件、文件夹和驱动器
查看;macos在文件夹里按 ⌘ + shift + . 查看
3、取消主题子仓库
如果不取消子仓库,是不能将主题文件也备份的。不过不用担心,之前的博客本地文件夹里不做更改,主题有更新的话可以先拉取到原来的地方,再手动复制到这里。
在克隆仓库的文件夹里进入 themes/stellar
,删掉 .git
,跟上面以 .
开头的文件一样,它也是隐藏文件。
4、安装组件
就跟你搭建hexo博客时候一样的,在我们clone仓的文件夹里需要安装必备的组件,才能在终端里使用相应的命令。进入克隆仓库,在终端里执行这两行命令:
三、使用说明
1、更新博客
更新博客和以前一样,用 hexo g -d
生成静态页面并部署到github上。
2、备份源文件
备份源文件使用 git push 的三件套:
git add .
、git commit -m "备份"
、git push origin BAK
git push origin BAK
这里的 BAK 是我第一步里创建的分支名,如果跟我不一样则需要改成你自己的分支名
备份成功的话终端会显示如下:
1 | skyreeves@SkydeMBP blog % git push origin BAK |
效果展示
我们到 github 验证一下,可以看到 main 分支里与以前一样,是部署的静态网页文件:
BAK
分支里则是备份好的博客源文件:
之前的博客文件夹可以弃用了,不过我留着用于获取主题文件的更新。