利用Github实现hexo多端同步
本文最后更新于:2024年12月14日 凌晨
网上有很多利用Github实现同步的方法,思路是差不多的,细节有些不同。
Hexo在本地和在vps上的文件是不同的东西。本地的主要是一些资源文件,包括了自己写的markdown的文章,theme主题文件等等。在执行hexo g
命令后,会在public
目录下生成网页的静态文件,我们用hexo d
上传的文件其实就是public
目录下的这些静态文件。如果执行hexo clean
,那么public
文件夹就会消失。实现多端同步,只要让每台电脑上都有最新的资源文件就行了。
我们只要在github上建立新的仓库(或者新建分支),将资源文件push上去就好了。在使用新的设备的时候,再将需要的文件pull下来。
主要参考下面的文章:
1. 将hexo文件push到github仓库
下面的操作所涉及的都是已经搭建好hexo的设备(已经安装了git等必要的程序)。
首先在github上创建新的仓库,我将其命名为hexo
。
在已经搭建好hexo的电脑上打开文件夹,找一个位置(我的是C:\Users\dabod\Blog
)打开命令窗口,clone刚刚新建的仓库到本地:
1 |
|
其中username
是自己的github的用户名,hexo
是刚刚新建的仓库的名字。
执行完成之后得到一个hexo
文件夹,进入文件夹中,仅留下.git
文件夹,删除其他所有的文件。
找到我们的博客文件的原来的位置(我的是C:\Users\dabod\Blog\blog
),将其中的文件全部复制到clone下来的hexo
文件夹中。现在在hexo
文件夹中会有一个.gitignore
文件,用来忽略一些不需要的文件,表示这些类型的文件不需要git。如果没有则新建一个,内容如下:
1 |
|
如果已经clone过主题文件,那么需要把theme主题文件夹里的 .git 也删除。因为git不能嵌套上传,最好是显示隐藏文件,检查一下有没有,否则上传的时候会出错,导致主题文件无法上传,这样配置在别的电脑上就用不了了。我的主题文件是通过压缩包直接解压安装的,所以不需要执行这个步骤。
然后将新建的hexo
文件夹中的内容推送到github的仓库:
1 |
|
这里解释一下每一行命令的含义:
git add .
:将当前目录下的所有文件存在暂存区;
git commit -m add_branch
:将暂存区的内容添加到本地仓库中,所以push之前需要执行commit
命令。其中的-m
表示添加备注信息,也就是后面的add_branch
,备注信息可以改成别的;-a
表示设置修改文件后不需要执行git add
命令,直接来提交;
git push
:将本地仓库中的内容push到远程仓库中。
实际操作中发现git add .
命令不能提交新增的文件(可能是git版本的原因),git add -A
是可以的。所以如果后续写了文章或是修改配置或是删除文件,那么可以执行下面的操作来push:
1 |
|
通过git log
命令可以查看每一次提交的情况,git show
+commit_id
可以展示每一次提交的具体内容,这里的commit_id
是git log
命令里面commit
后面的一长串字符,所以完整的命令如下:
1 |
|
执行hexo -d
所提交的仓库是在博客文件下的_config.yml
文件配置的,如下:
1 |
|
git push
是提交到github上的hexo仓库中的,并不冲突。
这样我们在原来的设备上的操作也就完成了。
2. 在新设备上配置
首先在新设备上安装node.js
和git
并且生成SSH
Key,参考hexo
+ vps 搭建个人博客。
和之前一样,将生成的SSH
Key(一长串字符)添加到vps的authorized_keys
文件中。由于之前已经添加过了原来的设备SSH
Key,新增加的要和之前的用空行隔开。
在新设备上找到要存在博客文件的位置,然后clone仓库:
1 |
|
进入文件夹,执行如下命令配置Hexo:
1 |
|
然后就可以执行hexo g
等命令正常使用了。
每次写完博客之后,需要顺便将修改push到github仓库中,操作和上面一样。
每次转移到另一台设备的时候,先执行git pull
命令就可以同步github仓库中的最新文件,然后就可以愉快地写博客了。
3. 后记
几年之前我用过git,但后来已经忘记得差不多了。在选择多端同步的方案的时候,我其实在逃避使用git,因为我觉得它很复杂,有点畏惧。不过用U盘同步实在不怎么优雅,用网盘同步也很麻烦,最终还是回到了git。在熟悉了一些基本操作之后,我发现它没有我想象的那么难,真的很好用。