美文网首页
利用Git解决hexo博客多PC间同步问题

利用Git解决hexo博客多PC间同步问题

作者: 历久尝新 | 来源:发表于2017-09-24 21:51 被阅读0次

场景

家里电脑和公司电脑,想要更新hexo blog.而hexo blog又没有wordpress后台可以写文章,如在家里的电脑发表了A文章,第二天在公司电脑发表了B文章,查看hexo blog你会发现只有B文章而没有A文章(因为公司电脑的hexo_file/source/_posts/没有A文章.md文件),所以多个电脑想要写文章,需要解决hexo blog数据一致性。

数据同步方案

1.Dropbox等网盘同步
优点:免费 操作简单
不足:在hexo generate 生成静态文件会触发自动上传。

2.Git版本库同步
优点:更新方便
不足:部署过程相对比较麻烦,对新手不友好,需要使用git命令
国内外知名的git服务提供商有:
github、bitbucket、gitlab、coding

由于hexo_blog配置文件涉及敏感的隐私数据(如api key),建议放私有仓库。
免费的私有库服务商有coding bitbucket.这里个人选择coding

配置过程

Coding操作

1.注册coding帐户,新建项目 选择私有仓库。
2.coding 添加SSH公钥操作
https://coding.net/help/doc/git/ssh-key.html#ssh-

上传hexo blog到git版本库

1.删除文件夹内原有的.git缓存文件夹并编辑.gitignore文件

  • 有些插件或者主题是git上下过来安装的话,每个文件夹下都会有对应的.git 文件夹,记得先删掉,否则会和blog仓库冲突
  • .git默认是隐藏文件夹,需要先开启显示隐藏文件夹。##.git文件夹被删除后整个文件对应的git仓库状态也会被清空##

  • .gitignore文件作用是声明不被git记录的文件,blog根目录下的.gitignore是hexo初始化带来的,可以先删除或者直接编辑,对hexo不会有影响。建议.gitignore内添加以下内容:
/.deploy_git
/public  
/_config.yml
  1. .deploy_git是hexo默认的.git配置文件夹,不需要同步
  2. public内文件是根据source文件夹内容自动生成,不需要备份,不然每次改动内容太多
  3. 即使是私有仓库,除去在线服务商员工可以看到的风险外,还有云服务商被攻击造成泄漏等可能,所以不建议将配置文件传上去

2.初始化仓库
hexo blog根目录下执行以下代码:

git init
git remote add origin <server>

<server>是指在线仓库的地址。origin是本地分支,remote add操作会将本地仓库映射到云端

3.添加本地文件到仓库并同步到git上

git add .  #添加blog目录下所有文件,注意有个`.`(`.gitignore`声明过的文件不包含在内)
git commit -m "first commit" #添加更新说明
git push -u origin master #推送更新到云端服务器

在执行这步之前一定要注意检查下.gitignore文件的内容,看看是否正确的把一些文件夹忽略掉了。如果加错了的话可以用

git rm -r --cached .

撤销添加操作。

到这里的时候,云端同步已经完成

将git的内容同步到本地

假设之前将A电脑里的内容备份到git了,现在B电脑准备同步内容。

git init
git remote add origin <server> 
git fetch --all
git reset --hard origin/master

fetch是将云端所有内容拉取下来。reset则是不做任何合并处理,强制将本地内容指向刚刚同步下来的云端内容(正常pull的话需要考虑不少冲突的问题,比较麻烦。)

更新文章后的同步操作

假设在B电脑上写完了文章,也hexo d -g
发布完了,这时候需要将新文章的md文件更新上去。(其实就是提交更新给git,会的可以无视了)同一个bash界面下:

git add .

这时候可以用git status查看状态,一般会显示刚刚更改过的文件状态。如:

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
        modified:   db.json
        new file:   source/_posts/test.md

上面的输出状态即说明’db.json’文件做了更改,source/_posts目录下新增了’test.md’文件。

然后对更改添加说明并推送到远程仓库.

git commit -m '更新信息'
git push

当显示类似如下提示的时候,即表示同步成功

To https://git.coding.net/sundayle/sundayle_hexo.git
 + 2c37f1e...4687bc6 master -> master (forced update)

再到A电脑上的时候,只需要

git pull

即可同步更新

git配置sock5代理

由于某些众所周知的缘故,所以github时不时的有时候速度会很慢,这种情况下本地代理就派上用场了。
这里以给git的SSH传输方式配置本地SS代理为例说下配置过程:

1.打开~/.ssh/config文件。
2.在Host github *.github.com下添加以下字段:

Proxycommand ssh -S 127.0.0.1:1080 %h %p

3.测试连接
保存退出后重启git bash。
输入ssh -vT git@github.com,当返回Hi username! You've successfully authenticated, but GitHub does not provide shell access.的时候即说明配置成功
之后github的所有流量都会走本地的ss代理。

http://chitanda.me/2015/06/18/hexo-sync-in-multiple-pc/

相关文章

  • 利用Git解决hexo博客多PC间同步问题

    场景 家里电脑和公司电脑,想要更新hexo blog.而hexo blog又没有wordpress后台可以写文章,...

  • Caddy + Hexo 实现自动化部署

    之前博客使用在 VPS 设置 git server 来解决 Hexo 博客发布到 VPS 问题,见文章 使用 V...

  • 初识Hexo

    多PC同步 master分支 修改_config.yml hexo分支简单的说就是把Hexo环境push到hexo...

  • 搭建博客

    利用Hexo+GitPage,搭建博客 前置条件Node.js+Hexo+Git 1. 安装Node.js,官网下...

  • hexo使用总结

    安装hexo 同步github 解决hexo编写博文的时候加入图片问题

  • hexo多电脑同步管理一个博客 | ZYMIN

    主要的思路是利用git分支实现。hexo生成的静态博客文件默认放在master分支上。 hexo的源文件(部署环境...

  • Hexo+Git+Node.js+GitHub Pages+Co

    利用Hexo+Git+Node.js+GitHub Pages+Coding Pages刚刚搭建完个人博客,记录一...

  • hexo 多终端同步博客

    A电脑: 添加 /.deploy_git, /public 到.gitignore文件末尾,一个一行 初始化本地仓...

  • hexo 搭建个人博客

    利用hexo在github上快速搭建个人博客 方案选型 主流的三种博客搭建方案: 我的选择: Git+Github...

  • hexo博客同步部署上传

    最近打算用HEXO写作博客,但是还是回到了之前的那个问题,如何解决不同PC端的写作问题,网上搜了很多,大部分都是用...

网友评论

      本文标题:利用Git解决hexo博客多PC间同步问题

      本文链接:https://www.haomeiwen.com/subject/usokextx.html