关于Hexo与GitHub同步的测试记录

利用Hexo建立了本地网站(Docker方式建立),准备在GitHub上发布静态网站,每次新增内容后的同步就老是出错。经过多次摸索、试错后,找到了一个可行的办法,记录下来自用或者供其他网友参考。

第一步:克隆远程仓库分支到本地指定目录(这里是在/app目录下的public目录,这个目录也是Hexo生成的静态网站文件存放目录),当前工作目录是/app

git clone <远程仓库地址> <本地目录路径>
1
git clone -b master --single-branch git@github.com:qxz5637/hexo.git public

将远程仓库的master分支克隆到当前目录的public目录下,若该目录不存在将自动创建。下面是命令执行结果:

1
2
3
4
5
6
7
8
9
10
11
# pwd
/app
# git clone -b master --single-branch git@github.com:qxz5637/hexo.git public
Cloning into 'public'...
remote: Enumerating objects: 50, done.
remote: Counting objects: 100% (50/50), done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 50 (delta 10), reused 50 (delta 10), pack-reused 0
Receiving objects: 100% (50/50), 558.68 KiB | 520.00 KiB/s, done.
Resolving deltas: 100% (10/10), done.
#

第二步:进入public目录,将该文件夹下的所有文件盒文件夹删除

1
2
cd /app/public
rm -rf ./*
命令运行完成后,.git目录仍然保留。
1
2
3
4
# ls /app/public/.git
HEAD config hooks info objects refs
branches description index logs packed-refs
#

第三步:提交到远程仓库,将远程仓库该分支下的文件清空

1.显示所有的远程主机
1
2
3
4
# git remote -v
origin git@github.com:qxz5637/hexo.git (fetch)
origin git@github.com:qxz5637/hexo.git (push)
#
2.将本地改动同步到远程仓库
1
# git add .
运行git add 命令无返回结果,下面是运行git commit -m "clean"的结果
1
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
# git commit -m "clean"
[master 8225fb4] clean
34 files changed, 37511 deletions(-)
delete mode 100644 "2024/05/02/Typecho\345\272\225\351\203\250\346\267\273\345\212\240ICP\345\244\207\346\241\210\345\217\267/index.html"
delete mode 100644 2024/05/02/hello-world/index.html
delete mode 100644 about/index.html
delete mode 100644 archives/2024/05/index.html
delete mode 100644 archives/2024/index.html
delete mode 100644 archives/index.html
delete mode 100644 categories/index.html
delete mode 100644 content.json
delete mode 100644 css/cyberpunk.css
delete mode 100644 css/default.css
delete mode 100644 css/style.css
delete mode 100644 images/qxz5637-1.jpg
delete mode 100644 images/qxz5637-2.jpg
delete mode 100644 images/qxz5637.jpg
delete mode 100644 img/avatar.png
delete mode 100644 img/favicon.svg
delete mode 100644 img/logo.svg
delete mode 100644 img/og_image.png
delete mode 100644 img/razor-bottom-black.svg
delete mode 100644 img/razor-top-black.svg
delete mode 100644 img/wx_qxz5637.jpg
delete mode 100644 img/zfb_qxz5637.jpg
delete mode 100644 index.html
delete mode 100644 js/algolia.js
delete mode 100644 js/animation.js
delete mode 100644 js/back_to_top.js
delete mode 100644 js/column.js
delete mode 100644 js/google_cse.js
delete mode 100644 js/insight.js
delete mode 100644 js/main.js
delete mode 100644 js/toc.js
delete mode 100644 manifest.json
delete mode 100644 other/index.html
delete mode 100644 tags/index.html
#
运行git push 命令及返回结果
1
2
3
4
5
6
7
8
9
10
# git push
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (1/1), done.
Writing objects: 100% (2/2), 185 bytes | 185.00 KiB/s, done.
Total 2 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:qxz5637/hexo.git
710a2d3..8225fb4 master -> master
#
登陆GitHub,查看该分支的所有文件已清空。

至此,完成了远程仓库的清空。

第四步:在/app目录,运行命令hexo g,重新创建新的静态网站文件

1
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
# hexo g
INFO Validating config
Inferno is in development mode.
INFO =======================================
██╗ ██████╗ █████╗ ██████╗ ██╗ ██╗███████╗
██║██╔════╝██╔══██╗██╔══██╗██║ ██║██╔════╝
██║██║ ███████║██████╔╝██║ ██║███████╗
██║██║ ██╔══██║██╔══██╗██║ ██║╚════██║
██║╚██████╗██║ ██║██║ ██║╚██████╔╝███████║
╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝
=============================================
INFO === Checking package dependencies ===
INFO === Checking theme configurations ===
INFO === Registering Hexo extensions ===
INFO Start processing
Inferno is in development mode.
INFO Files loaded in 817 ms
INFO Generated: js/algolia.js
INFO Generated: js/google_cse.js
INFO Generated: js/toc.js
INFO Generated: js/insight.js
INFO Generated: content.json
INFO Generated: manifest.json
INFO Generated: categories/index.html
INFO Generated: tags/index.html
INFO Generated: about/index.html
INFO Generated: other/index.html
INFO Generated: archives/index.html
INFO Generated: archives/2024/index.html
INFO Generated: archives/2024/05/index.html
INFO Generated: img/avatar.png
INFO Generated: index.html
INFO Generated: img/favicon.svg
INFO Generated: img/logo.svg
INFO Generated: img/razor-bottom-black.svg
INFO Generated: img/og_image.png
INFO Generated: img/razor-top-black.svg
INFO Generated: images/qxz5637.jpg
INFO Generated: img/wx_qxz5637.jpg
INFO Generated: css/cyberpunk.css
INFO Generated: js/back_to_top.js
INFO Generated: js/animation.js
INFO Generated: js/column.js
INFO Generated: js/main.js
INFO Generated: css/default.css
INFO Generated: css/style.css
INFO Generated: img/zfb_qxz5637.jpg
INFO Generated: images/qxz5637-2.jpg
INFO Generated: images/qxz5637-1.jpg
INFO Generated: 2024/05/03/Hexo常用命令/index.html
INFO Generated: 2024/05/03/Hueman主题下配置Gitalk/index.html
INFO Generated: 2024/05/02/Typecho底部添加ICP备案号/index.html
INFO Generated: 2024/05/02/hello-world/index.html
INFO 36 files generated in 2.82 s
#

第五步:将新建的静态网站文件同步到远程仓库,与第一步相似

1.所有文件加入本地库
1
# git add .
2.提交到缓存
1
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
# git commit -m "auto"
[master 63620ae] auto
36 files changed, 37720 insertions(+)
create mode 100644 "2024/05/02/Typecho\345\272\225\351\203\250\346\267\273\345\212\240ICP\345\244\207\346\241\210\345\217\267/index.html"
create mode 100644 2024/05/02/hello-world/index.html
create mode 100644 "2024/05/03/Hexo\345\270\270\347\224\250\345\221\275\344\273\244/index.html"
create mode 100644 "2024/05/03/Hueman\344\270\273\351\242\230\344\270\213\351\205\215\347\275\256Gitalk/index.html"
create mode 100644 about/index.html
create mode 100644 archives/2024/05/index.html
create mode 100644 archives/2024/index.html
create mode 100644 archives/index.html
create mode 100644 categories/index.html
create mode 100644 content.json
create mode 100644 css/cyberpunk.css
create mode 100644 css/default.css
create mode 100644 css/style.css
create mode 100644 images/qxz5637-1.jpg
create mode 100644 images/qxz5637-2.jpg
create mode 100644 images/qxz5637.jpg
create mode 100644 img/avatar.png
create mode 100644 img/favicon.svg
create mode 100644 img/logo.svg
create mode 100644 img/og_image.png
create mode 100644 img/razor-bottom-black.svg
create mode 100644 img/razor-top-black.svg
create mode 100644 img/wx_qxz5637.jpg
create mode 100644 img/zfb_qxz5637.jpg
create mode 100644 index.html
create mode 100644 js/algolia.js
create mode 100644 js/animation.js
create mode 100644 js/back_to_top.js
create mode 100644 js/column.js
create mode 100644 js/google_cse.js
create mode 100644 js/insight.js
create mode 100644 js/main.js
create mode 100644 js/toc.js
create mode 100644 manifest.json
create mode 100644 other/index.html
create mode 100644 tags/index.html
#
3.同步到远程仓库
1
2
3
4
5
6
7
8
9
10
11
# git push
Enumerating objects: 56, done.
Counting objects: 100% (56/56), done.
Delta compression using up to 4 threads
Compressing objects: 100% (44/44), done.
Writing objects: 100% (55/55), 570.30 KiB | 1.45 MiB/s, done.
Total 55 (delta 11), reused 25 (delta 1), pack-reused 0
remote: Resolving deltas: 100% (11/11), done.
To github.com:qxz5637/hexo.git
8225fb4..63620ae master -> master
#
登陆GitHub网站,查看该分支下面的文件。
全部完成,感觉好累啊!