多台电脑同步更新Hexo博客
在利用Hexo+Github Pages写我们的博客的时候,真正的原始Hexo文件在我们的电脑本地,而GitHub上传的只是Hexo生成的静态网页,即public文件夹里面的内容。
那么假如我们有两台电脑工作,Hexo最开始搭建在其中一台电脑上,而我们需要在另外一台电脑上同时更新我们的博客,该怎么做呢?
也就是说,我们需要实现多台电脑间博客项目的迁移与同步。为实现这一点,我们可以利用Git的分支。
创建分支
博客搭建好后(博客搭建教程见——利用Hexo框架从零开始搭建个人博客 - 江客 (jettsblog.top)),我们在Github上创建分支

创建一个名为hexo的分支
设置hexo分支为默认分支

将博客项目仓库的Settings->Branches->Default branch修改为hexo

将创建的分支的远程仓库克隆到本地

删去除.git文件夹以外的所有你内容
进入克隆到本地的仓库
勾选查看隐藏的文件
删去除.git文件夹以外的所有文件
在克隆的仓库下分别执行以下命令更新删除操作到远程
1
2
3git add -A
git commit -m "--"
git push origin hexo1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64jett@HUAWEI-Huang MINGW64 /d/Github/HJTAHMAKBAR.github.io (hexo)
$ git branch
* hexo
jett@HUAWEI-Huang MINGW64 /d/Github/HJTAHMAKBAR.github.io (hexo)
$ git add -A
jett@HUAWEI-Huang MINGW64 /d/Github/HJTAHMAKBAR.github.io (hexo)
$ git commit -m "--"
[hexo 91e562f] --
42 files changed, 8343 deletions(-)
delete mode 100644 404.html
delete mode 100644 CNAME
delete mode 100644 about/index.html
delete mode 100644 archives/2021/06/index.html
delete mode 100644 archives/2021/index.html
delete mode 100644 archives/index.html
delete mode 100644 categories/index.html
delete mode 100644 "categories/\346\211\200\346\234\211/index.html"
delete mode 100644 css/gitalk.css
delete mode 100644 css/main.css
delete mode 100644 img/avatar.png
delete mode 100644 img/bg/library.jpg
delete mode 100644 img/bg/pen.jpg
delete mode 100644 img/bg/planet.png
delete mode 100644 img/bg/road.jpg
delete mode 100644 img/bg/skateBoarding.jpg
delete mode 100644 img/bg/sleepyCat.jpg
delete mode 100644 img/cover/cover.png
delete mode 100644 img/cover/helloworld.png
delete mode 100644 img/default.png
delete mode 100644 img/favicon.png
delete mode 100644 img/img/avatar.png
delete mode 100644 img/loading.gif
delete mode 100644 img/police_beian.png
delete mode 100644 index.html
delete mode 100644 js/boot.js
delete mode 100644 js/color-schema.js
delete mode 100644 js/events.js
delete mode 100644 js/img-lazyload.js
delete mode 100644 js/leancloud.js
delete mode 100644 js/local-search.js
delete mode 100644 js/plugins.js
delete mode 100644 js/utils.js
delete mode 100644 lib/hint/hint.min.css
delete mode 100644 links/index.html
delete mode 100644 local-search.xml
delete mode 100644 tags/index.html
delete mode 100644 "tags/\345\205\266\344\273\226/index.html"
delete mode 100644 "tags/\351\232\217\346\203\263/index.html"
delete mode 100644 xml/local-search.xml
delete mode 100644 "\346\211\200\346\234\211/\344\275\240\345\245\275\344\270\226\347\225\214/helloworld.png"
delete mode 100644 "\346\211\200\346\234\211/\344\275\240\345\245\275\344\270\226\347\225\214/index.html"
jett@HUAWEI-Huang MINGW64 /d/Github/HJTAHMAKBAR.github.io (hexo)
$ git push origin hexo
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 12 threads
Compressing objects: 100% (1/1), done.
Writing objects: 100% (2/2), 186 bytes | 186.00 KiB/s, done.
Total 2 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/HJTAHMAKBAR/HJTAHMAKBAR.github.io.git
c5be9db..91e562f hexo -> hexo将分支克隆到本地的仓库中的.git文件夹复制到博客文件夹中
在博客目录下执行命令同步到远程的hexo分支
1
2
3git add -A
git commit -m "备份Hexo(提交的描述)"
git push origin hexo1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48jett@HUAWEI-Huang MINGW64 /d/Github/JettsBlog (hexo)
$ git add -A
warning: LF will be replaced by CRLF in package.json.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in source/_posts/你好世界.md.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in source/about/index.md.
The file will have its original line endings in your working directory
jett@HUAWEI-Huang MINGW64 /d/Github/JettsBlog (hexo)
$ git commit -m "备份Hexo"
[hexo 3f03216] 备份Hexo
24 files changed, 3404 insertions(+)
create mode 100644 .github/dependabot.yml
create mode 100644 .gitignore
create mode 100644 _config.fluid.yml
create mode 100644 _config.landscape.yml
create mode 100644 _config.yml
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 scaffolds/draft.md
create mode 100644 scaffolds/page.md
create mode 100644 scaffolds/post.md
create mode 100644 source/CNAME
create mode 100644 "source/_posts/\344\275\240\345\245\275\344\270\226\347\225\214.md"
create mode 100644 "source/_posts/\344\275\240\345\245\275\344\270\226\347\225\214/helloworld.png"
create mode 100644 source/about/index.md
create mode 100644 source/img/bg/library.jpg
create mode 100644 source/img/bg/pen.jpg
create mode 100644 source/img/bg/planet.png
create mode 100644 source/img/bg/road.jpg
create mode 100644 source/img/bg/skateBoarding.jpg
create mode 100644 source/img/bg/sleepyCat.jpg
create mode 100644 source/img/cover/cover.png
create mode 100644 source/img/cover/helloworld.png
create mode 100644 source/img/img/avatar.png
create mode 100644 themes/.gitkeep
jett@HUAWEI-Huang MINGW64 /d/Github/JettsBlog (hexo)
$ git push origin hexo
Enumerating objects: 36, done.
Counting objects: 100% (36/36), done.
Delta compression using up to 12 threads
Compressing objects: 100% (26/26), done.
Writing objects: 100% (35/35), 13.91 MiB | 777.00 KiB/s, done.
Total 35 (delta 0), reused 14 (delta 0), pack-reused 0
To https://github.com/HJTAHMAKBAR/HJTAHMAKBAR.github.io.git
91e562f..3f03216 hexo -> hexo查看hexo分支的仓库
另一台电脑的操作
git bash将远程仓库克隆到本地
1
git clone 仓库地址
然后进入项目目录,安装依赖启动博客服务器,生成静态文件
1
2
3npm install
hexo g
hexo s执行以上指令后,便可以在浏览器通过http://localhost:4000/访问博客
另一台电脑发布文章
同之前的教程一样,写好文章后
1
2hexo clean
hexo d -g
两台电脑同步写博客
我们的博客仓库有两个分支,master分支和hexo分支
其中,master分支用于存放Hexo生成的静态资源文件,hexo分支用于存放网站的原始文件
所以,我们在一台设备上写好一篇文章或进行了博客的修改后
执行以下命令,将master中的静态资源文件更新
在博客目录下的cmd中
1 |
|

执行以下命令,将hexo中的网站原始文件更新
在博客目录下的git bash中
1 |
|

大功告成!
注意事项
每次有新的操作的时候,别忘了在另一台电脑上更新
1 |
|