博客多端部署、同步

博客多端部署、同步

hexo 自带的提交 hexo -d 提交的是博客生成的 html 文件,如果需要多端同步,需要源码一并提交。使用 Git 进行上传、拉取、同步管理。了解了一下大致有两种做法,一种是将源码上传到原来的 github 网页博客项目的新分支,这样意味着所有源文件都公开,虽然也没啥,但是就是不太爽。另一种就是创建新的私有库,存储源代码,写博客、发布博客前,先拉取,后上传即可。

本地部署

要在不同终端部署博客,需要建立相似的版本环境。

安装指定版本的nodejs

指定版本源,指定为14版本

1
2
3
4
5
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get update
sudo apt-get install nodejs
node -v
npm -v

安装git

1
2
sudo apt install git-all
git --version

安装Hexo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
npm install hexo@5.4.0
npm install hexo@legacy
npm i hexo-cli -g
#安装指定版本
npm install hexo@4
#安装某版本的最新包
npm view <package_name> version
npm info <package_name>
#查看包的最新版本信息
npm list
npm list <package_name>
#列出已安装包/列出指定包的版本信息

#安装完毕后
hexo -v

安装必要的依赖包

1
2
3
npm install npm-check-updates -g	#检查包更新
npm install @octokit/rest #评论插件
npm install hexo-theme-icarus #主题文件

同步

创建私有仓库

github 上创建私有仓库

初始源上传github

编写 .gitignore ,没有就创建一个,用于忽略指定文件不同步。

1
2
3
4
5
/.deploy_git
/public
/node_modules
/*.log
db.json
1
2
3
4
5
6
7
8
9
10
git init
git remote add origin git@github.com:your_name/repo_name.git
#连接到远程仓库,别名origin
git remote -v
#查看连接
git pull origin main --allow-unrelated-histories
git add -A
git commit -m "blogsource"
git push
git push --set-upstream origin main

合并分支

因为 github 将原本默认的 master 分支更改为 main 。所以有的旧仓库需要合并分支。不想合并其实只需要将 master 重新改为默认分支就好,不过这样新旧项目的默认主分支就不同了,有点麻烦。

  • 克隆仓库

    1
    git clone repo_name.git
  • 创建 main 并推送

    1
    2
    git checkout -b main
    git push origin main
  • 删除本地、远端 master

    1
    2
    git branch -d master
    git push oringin master

拉取代码

1
git pull origin main

多端同步

初始化密钥。如果有多个帐号的需求,请不要使用全局配置。

1
2
3
4
5
6
7
git config --global user.name "yourGithubName"
git config --global user.email "yourGithubEmail"
ssh-keygen -t rsa -C "yourGithubEmail"
#然后查看密钥,复制到github个人帐号,创建新的settings/SSH Keys
cat ~/.ssh/id_rsa.pub
#测试
ssh -T git@github.com

然后

1
2
3
git init
git remote add origin githubUserName/repoName.git
git clone git@github.com:githubUserName/repoName.git

回到目录下

1
npm install

报错就重开终端,文件夹数据、属性没刷新。

至此,完成多端的同步设置。使用 git pull 查看,最新。

日常使用

上传、写博客

1
2
3
4
5
git pull
git add .
git commit -m "sync"
git push origin main
# hexo g -d?

维护

博客还是需要时不时维护一下的,特别是那帮搞前端的天天升级依赖包,哪天哪个依赖包升级了,就开始疯狂报错了。一年多没有维护的博客可以说是基于bug运行了。(我更新依赖把博客滚挂了)

1
2
3
4
npm install npm-check-updates -g
ncu
ncu -u #升级依赖包
npm audit fix #修复依赖包安全漏洞

github action自动部署

另见笔记:GitHub Action入门指南—实战-自动部署小节。

每次写完,不仅要 push ,还要 hexo g -d ,确实是不太优雅,自动部署配置好 Action 之后,每次 push 完就可以溜了,好多了。

关键文件备份

hexo 以及各种主题,都是博客的载体罢了,不管博客服务有没有正常运行,有没崩溃,都有需要备份的数据,便以归档、重建。

参考

Hexo 博客多终端同步管理

Hexo 多终端同步和管理

Hexo 官方文档-资源文件夹

作者

ivy

发布于

2022-02-27

更新于

2023-03-25

许可协议

CC BY-NC-SA 4.0

评论