写在前面

hexo生成博客提交的是渲染之后的html文件,并不是源码,本文主要描述如何实现hexo多终端源码同步,使用到的工具是“git”,文章可能还有很多不足,请大家谅解,欢迎大佬提意见。

本文使用的东西

  1. win10电脑
  2. hexo4.1.1
  3. git2.24.0

1.方法介绍

多终端管理的原理:把博客源码提交到GitHub存储库,使用git进行不同终端的本地库同步。

有两种不同的方法:

  1. 创建仓库:需要在GitHub上创建一个用于存储源码的库,建议最好选择“private”不要公开,除非你博客的所有内容打算完全公开。
  2. 创建分支:不新建仓库,将源码放在博客界面所在的仓库的另一个分支中。

我采用创建仓库的方法,创建了一个“blog_source”存储库。
创建仓库

2.创建仓库方法

  1. 打开博客目录,目录下有一个“.gitignore”文件,没有就自己创建一个,该文件用于忽略指定的文件不进行同步,根据你的要求进行配置。我的配置内容如下:
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
  1. 右键打开“git”,依次输入以下命令进行本地仓库与远程仓库对接
# 初始化本地仓库
git init

# 本地仓库和GitHub远程仓库对接
# nineya/blog_source.git修改为准备用于存放源码的仓库名
git remote add origin git@github.com:nineya/blog_source.git

# 查看远程仓库地址,验证配置是否正确
git remote -v

与远程仓库对接

3.提交数据到远程仓库

# 同步远程库上的数据,否则无法提交
git pull origin master --allow-unrelated-histories

# 将所有文件添加到本地仓库
git add -A

# 提交到远程仓库
git commit -m "博客源文件"
git push

3.创建分支方法

  1. 这一步是一样的,打开博客目录,目录下有一个“.gitignore”文件,没有就自己创建一个,该文件用于忽略指定的文件不进行同步,根据你的要求进行配置。我的配置内容如下:
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
  1. 右键打开“git”,依次输入以下命令进行本地仓库与远程仓库对接
# 初始化本地仓库
git init

# 本地仓库和GitHub远程仓库对接
# nineya/blog_source.git修改为博客界面所在仓库名
git remote add origin git@github.com:nineya/nineya.github.io.git

# 查看远程仓库地址,验证配置是否正确
git remote -v

# 新建分支blog_source
git branch blog_source

# 切换到blog_source分支
git checkout blog_source

3.提交数据到远程仓库

# 同步远程库上的数据,否则无法提交
git pull

# 将所有文件添加到本地仓库
git add -A

# 提交到远程仓库
git commit -m "博客源文件"
git push

4.新电脑同步

在新电脑上安装好git、nodejs和hexo,只要输入以下命令同步即可

# 克隆博客源码
git clone git@github.com:nineya/blog_source.git blog

# 打开博客根目录
cd blog

# 安装依赖
npm install

5.出错

5.1fatal: refusing to merge unrelated histories错误

出现该错误的原因是项目中文件的创建时间早于仓库创建的时间,在你的命令之后添加--allow-unrelated-histories这段内容即可。

示例:

git pull origin master
# 改为
git pull origin master --allow-unrelated-histories

git push origin master
# 改为
git push origin master --allow-unrelated-histories

5.2There is no tracking information for the current branch错误

There is no tracking information for the current branch错误

输入提示上的内容即可解决,示例如下:

git pull origin master

或

git branch --set-upstream-to=origin/master master
git pull

总结

静态博客发表文章等都比较繁琐,本人在实际使用中,该方法更多作为保存博客源码的一种方式,异地写博客直接保存“.md”文件,回到电脑面前再提交博文。有不清楚的地方欢迎评论留言,看到的我都会回复的。本文到此结束,有什么不足的地方请大家不吝指正。