发布于 

利用 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
2
3
4
5
6
7
8
skyreeves@SkydeMBP ~ % git clone git@github.com:skyreeves/blog.git
Cloning into 'blog'...
remote: Enumerating objects: 4866, done.
remote: Counting objects: 100% (618/618), done.
remote: Compressing objects: 100% (176/176), done.
remote: Total 4866 (delta 289), reused 543 (delta 219), pack-reused 4248
Receiving objects: 100% (4866/4866), 2.13 MiB | 920.00 KiB/s, done.
Resolving deltas: 100% (2281/2281), done.

这一步的clone命令需要ssh秘钥支持,不过既然都搭建好了博客,那秘钥相比已经是没问题的吧~

2、调整本地仓文件

我们是基于最初的 main 分支创建的新的分支并clone到本地的,在本地仓会有静态网页的文件,而静态文件在每次更新博客的时候都会用 hexo g 生成,所以不需要备份。

首先在克隆仓库的文件夹里把这些静态网页文件全删掉。

那为什么不一开始就新建空白分支呢,因为我不会

然后去之前博客所在文件夹里,将博客源文件复制过来,可以把所以文件都丢过来,也可以只复制这几个_config.yml_config.stellar.ymlpackage.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
2
3
4
5
6
7
8
9
10
skyreeves@SkydeMBP blog % git push origin BAK
Enumerating objects: 284, done.
Counting objects: 100% (284/284), done.
Delta compression using up to 8 threads
Compressing objects: 100% (267/267), done.
Writing objects: 100% (282/282), 192.37 KiB | 735.00 KiB/s, done.
Total 282 (delta 17), reused 2 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (17/17), completed with 2 local objects.
To github.com:skyreeves/blog.git
fc47ee1..811b11f BAK -> BAK

效果展示

我们到 github 验证一下,可以看到 main 分支里与以前一样,是部署的静态网页文件:

BAK 分支里则是备份好的博客源文件:

之前的博客文件夹可以弃用了,不过我留着用于获取主题文件的更新。


©2022 渝ICP备2022011696号-2 | Build By SkyReeves | Powered By Hexo Stellar
本站由 提供CDN加速/云储存 |