L
O
A
D
I
N
G

从零开始搭建博客(三)——博客在多台终端同步管理

前言

我们利用 Hexo 框架在本地搭建了一个精美的博客,可是只能本地访问,要想发布到互联网上,还需要将它部署在网站上。博客的功能只要能阅读文章就够了,因此可以考虑将其部署在提供静态网页托管服务的网站上,许多平台都提供了静态网页托管服务,其中最方便的当然是 GitHub Pages,只需要注册一个账号就可以使用。GitHub Pages的服务器毕竟在国外,如果觉得访问太慢,也可以选择国内功能相似的 Gitee Pages。本篇文章介绍怎样利用 GitHub 提供的免费静态网页托管服务 GitHub Pages 建站。后面我应该还是会选择部署在服务

一、GitHub Pages

GitHub 是世界上最流行的软件源代码托管服务平台,为什么要提供网页托管服务呢?

这是因为一个项目的主页如果只有源码,对新接触的人很不友好,不知从何处下手。虽然已经有了 readme.md 文件,但毕竟不如一个直观的网页来的直接。于是 GitHub 就设计了 Pages 功能,允许用户设计一个图文并茂的网页作为项目首页。

虽然 GitHub Pages 的初衷是提供自定义的项目首页,但是它的玩法不止这一个。因此许多博主都用这个功能来搭建自己的博客,因为它实在是太太方便了。

去GitHub Pages 官网 pages.github ,拉到最后,可以看到官方也推荐使用 GitHub Pages 搭建博客,并且提供了示例教程。

二、GitHub Pages 准备

前提是你拥有一个gitHub账号

1673508844010.png
由于每个 GitHub 账户只能建立一个 GitHub Pages 页面,所以 Repository name 必须填<你的用户名>.github.io,否则就会建立一个普通仓库,GitHub Pages 功能不会生效。比如用户名是jacksparrow,Repository name 这里就填jacksparrow.github.io,不知道用户名是哪个,可以点击页面右上角头像,看到第一行“Signed in as xxx”字样, xxx即为这里的用户名。

Description 填写仓库描述,比如 jacksparrow's blog等,可不填。

注意勾选 Public ,否则 GitHub Pages 功能不会生效。建议勾选 Add a README file,会自动生成一个 readme.md文件。

最后点击Create repository创建仓库。

1673509175671.png
我们可以通过输入网址https://<你的用户名>.github.io,来访问到这个仓库里面的内容。

三、GitHub Pages 发布

我们把自己的博客生成静态 html 网页,提交到这个仓库目录下,就可以在我们的网址看到博客页面了,这就是 Hexo 框架部署博客的原理。当然,对于 Hexo 来说,提交部署只需要几条命令。

四、Hexo+Git+Github博客在多台终端同步管理

此方法利用Git管理Hexo产生的文件,实现在不同的电脑上同步(Github)所需的文件,也可以正常的在不同的Hexo环境里进行相应操作,只要在做完之后同步到Github的仓库里即可。下面具体来说说:

网上基本上都是这个思路:

Github 分支管理Hexo环境目录

主要是通过维护两条git分支来实现,第一个分支是 Gihub 上默认的 master 分支,用于存放发布的博文的静态页面;另外再新建一个分支,比如命名为 Hexo ,通过此分支存放主题、原始的博客文件等等,这些文件才是不同电脑需要同步的文件;当每次修改主题或者新增博文后,先将修改的主题文件(在themes文件夹下)或者新增博客(在source文件夹下),同步到远程的 Hexo 分支,然后在通过 hexo g -d命令发布博文,也就是将新增的博文的静态页面同步到 master 分支。这样通过不同的分支管理不同的文件,实现了多台电脑同步更新博文的功能。!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
├── .gitignore
├── .deploy_git
| ├── ...
| ├── ...
| └── ...
├── node_modules
├── public
├── package-lock.json
├── db.json
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes

其中 .deploy_git、public 两个文件夹下存放的是博客文章的静态页面,通过对比 Github 上博客仓库的master分支可以看到master分支下面的文件结构和 .deploy_git 文件夹下的文件是一致的,这个应该可以判断通过 hexo g -d 发布到 Github 的内容就是 .deploy_git 文件夹下面的文件。其余的文件夹和文件即是Hexo的主题文件、原始的博客文件等,刚在上文提到的Hexo分支,存的即时这些文件

实现方式

创建分支

在PC b,

初始化分支

1
git clone 仓库地址(自己的仓库地址)

将仓库文件拉取到本地,生成的文件名为 username.github.io;进入username.github.io文件夹,除了 .git 文件夹以外,其他文件全部删除;同时添加.gitnore

1
2
3
4
5
6
7
8
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
# 添加git忽略

提交本次修改

1
2
3
git add .
git commit -m “提交说明”
git push origin Hexo

同步分支(PC2上面操作)

git pull拉取远程hexo分支的代码

但是暂时不要提交,先安装hexo环境去

1
2
3
4
# 安装 hexo 框架
npm install -g hexo-cli
# 安装 hexo 依赖包
npm install

然后再执行

1
2
3
hexo clean 
hexo g
hexo d

这时你文件夹下多出了db.json,node_modules,public,还会多一个.deploy_git(hexo打包后上传到master主分支的静态博客文件夹)因为我用了yarn,所以会有yarn.lock,这个无关紧要,这时git提交上去就行,最后的文件目录如这样

1673511752083.png

文章内更新点东西,加一句话什么的,再去执行hexo的命令

过会再去打开https://你的用户名.github.io,更新了就代表没问题了

参考文献

Hexo+Git+Github博客在多台终端同步管理_HackerEric的博客-CSDN博客

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

我是穷比,在线乞讨!

支付宝
微信