在实验室部署的hexo来更新,后来需要在自己笔记本上进行博客更新,因此上网查询教程进行配置,在这里记录下来,下面将原来部署的终端记为A,新的终端为B。
本文章参考了搭建hexo博客并简单的实现多终端同步
创建hexo分支
- 先在github上的博客仓库新建一个branch,这里我新建的是hexo
- 将hexo分支设置为默认分支
在终端A上将源文件上传到hexo分支
1
如果用的主题是第三方theme,是使用gitclone下来的话,要把主题文件夹下面把.git文件夹删除掉,不然主题无法push到远程仓库,导致你发布的博客是一片空白
初始化本地仓库:
git init初始化本地仓库: git init
添加本地所有文件到仓库:
git add -A添加commit:
git commit -m “blog源文件”添加本地仓库分支hexo:
it branch hexog添加远程仓库:
git remote add origin git@github.com:yourname/yourname.github.io.git将本地仓库的源文件分支hexo强制推送到远程仓库hexo分支:
git push origin hexo -f终端B操作
在终端B上安装Node.js、Git。
1
2
3
4
5这里在安装完成时发现在gitbash中找不到npm和node命令,上网查了解决办法,
有的说添加用户环境变量,
有的说重装到C盘,
有的说在gitbash内重装
最后是通过电脑重启解决的O(∩_∩)O。在终端B中生成SSH,将公钥添加到github上。
1
2
3
4
5
6
7
8
9
10
11
12
13这里也遇到一个坑,我的笔记本原来生成过秘钥,但是名字是自定义为github_rsa
导致每次配置好后,下次就又Permission denied
解决办法:再配置一个config文件
cd ~/.ssh/
vi config
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_rsa
保存退出后重新尝试ssh -T git@github.com将github远程仓库的hexo分支clone到本地
1
git clone -b hexo git@github.com:yourname/yourname.github.io.git
安装hexo:
npm install1
2不知道为什么我这里执行后hexo命令不能运行,最后使用的是下列命令:
npm install hexo-cli -g在终端B编辑博客,发布
1
2
3
4
5hexo new post "new blog name" //新建一个.md文件,并编辑完成自己的博客内容
git add source //经测试每次只要更新sorce中的文件到Github中即可,因为只是新建了一篇新博客
git commit -m "XX"
git push origin hexo //更新分支
hexo d -g //push更新完分支之后将自己写的博客对接到自己搭的博客网站上,同时同步了Github中的master
不同终端同步
在不同的终端配置已经完成,现在可以在不同的终端进行博客更新,每个终端更新步骤如下:1
2
3
4
5
6git pull origin hexo //先pull完成本地与远端的融合
hexo new post " new blog name"
git add source
git commit -m "XX"
git push origin hexo
hexo d -g //push更新完分支之后将自己写的博客对接到自己搭的博客网站上,同时同步了Github中的master
以上操作均在各自终端的hexo分支下进行,中间出现过一次hexo分支部署错误,用master部署后好了,也不清楚是什么原因。但是经过测试只用hexo分支,也会同步master。
测试
这句话是在终端B上编写上传的。
这句话是在终端A上编写上传的。
测试成功!
其他问题
在搭建hexo博客并简单的实现多终端同步中提到了使用github将next的主题文件进行了更新,使用hexo g生成静态网页,然后hexo s本地调试成功,也没什么问题,当我hexo d发布到远程仓库的之后,在线浏览的时候发现一片空白,这时候使用其他主题都没问题。
虽然目前没遇到,在这里做一下记录,解决办法如下:
解决办法: 将主题文件夹下面的source/vendors,全部改成source/lib1
2
31. 先把主题文件夹下面`source/`下的`vendors`改成`lib`;
2. 将主题配置文件中`_internal: vendors`改成`_internal: lib`
3. 将主题文件夹下面其他文件中的`source/vendors`改成`source/lib`