善用同步-让你随时随地写博客

前言

由于hexo的博客文件系统是在本地的,要是在博客写了一部分之后,换到新的电脑上就很麻烦,总不能把文档拷回去吧其实就是懒。这就需要进行文件同步了,这样在家在公司都可以很方便的编辑博客了。

先放一张我最爱的游戏——风之旅人journey

同步方法:

有三种办法:

  1. 百度云之类的云盘同步
  1. 微软的OneDrive同步
  2. Git仓库同步

云盘同步(不推荐)

这个是国内接触得最多的方法了,原本是最接地气的方法,但是目前各大服务商在网盘业务上不盈利导致放弃支持了。

优点: 安装一个客户端即可(已失效)

微软OneDrive(推荐)

不论你使用什么操作系统,微软OneDrive都是一个不错的选择。微软的产品最大的优点就是易用性都不错,如果你是使用的 win10 系统,那么他就是你的最佳选择。如果你是使用win7 or 其他操作系统只要安装OneDrive 客户端即可。

具体操作步骤:

  1. 安装OneDrive 客户端(win8/win10 系统自带)
  2. 登陆你的微软账号(两台设备的需要登陆相同的账号)
  3. 将你的hexo的所有文件都放入OneDrive中。

缺点: 只能同步文件,无法提供如git的分支功能

我个人最推荐使用OneDrive,不需要什么复杂的操作简单,够用。虽然我最终的选择是OneDrive + Git。

Git 仓库同步

Git 仓库服务稍显麻烦,但是胜在功能强大。

操作步骤:

选择仓库:

去 GitHub、Coding、Gitlab等托管网站注册账号,并创建一个仓库即可(这一个步骤在利用 Github 和 hexo 搭建自己的博客已经有提到)。但是鉴于国内的网络情况,我建议使用Coding的仓库服务,而且Coding的私人仓库是免费的。

创建coding仓库并同步

进入Coding的网站注册一个账号,进入你的项目首页,点击创建项目。

img

填写你的项目信息,注意 这里请设置为私有,不然所有文件别人都看到了。

填写你的ssh公钥

等一下,这里你还要把你的ssh公钥填写一下,否则Coidng仓库会拒绝我们的上传需求的。

如果你看过我第一篇文章应该就不会陌生了。建议去阅读或者搜一下 Git SSH 公钥 即可。本地记事本打开你的id_rsa.pub文件,复制全部内容,在将其填写到Coding SSH公钥设置 保存即可。

连接仓库并同步

点击创建项目后,进入所在项目的代码页面,获得仓库地址 建议使用SSH方式链接(懒得手打)

其实这里也提示了怎么将文件同步到仓库的办法。

到你存放博客文件的位置 Shift + 鼠标右键 点击 Git Brash Here即可

依次输入几段命令即可

1
2
3
4
5
git init #这段命令的作用是创建版本库,完成后你会看到一个 .git 的文件夹。
git add . #这段命令的作用是将文件夹内所有文件加入上传列表
git commit -m "the first commit" # -m 后引号包裹的信息是你的上传信息,方便你以后分辨。建议认真填写(内容随意)
git remote add origin https://git.coding.net/zealotce/my_Blog.git
git push -u origin master #这两段就是真正将文件提交到你在coding上的仓库了,等待上传完毕即可

完了回到coding仓库 你就可以看到所有的文档了,回家在用git 同步下来就好了。

1
git clone https://git.coding.net/zealotce/my_Blog.git #这样你的hexo博客文件就都会来了
Hexo 编写发布

当你家里的电脑仍然需要有hexo环境的。但是由于你已经有了所有的文件了,所以只要使用npm install命令即可,不要使用hexo init他会把已有的git仓库环境给初始化。

1
npm install

然后编写发布还是正常的hexo命令

1
2
3
hexo g
hexo s #本地预览
hexo d -g #直接发布

最后执行 git status把新修改的文件git addgit commit以及git push到私有仓库。这样换设备的时候直接修改就好了

Hexo 仓库更新

下次进行Hexo 仓库拉取请执行。

1
2
3
4
5
6
7
git pull #编辑前请同步一下,不然就要解决冲突了。作用:将远程仓库中的文件同步到本地
git add . #将所有文件提交到上传列表
git commit #提交到本地仓库
git push -u origin master #推送到远程仓库中
#下面两个我没怎么使用过
git fetch --all #将git上所有文件拉取到本地
git reset --hard origin/master #强制将本地内容指向刚刚同步git云端内容

reset 对所拉取的文件不做任何处理,此处不用 pull 是因为本地尚有许多文件,使用 pull 会有一些版本冲突,解决起来也麻烦,而本地的文件都是初始化生成的文件,较拉取的库里面的文件而言基本无用,所以直接丢弃。

说了这么多,我觉得还是OneDrive最好用

END

最后部分参考文章:最完美的Hexo多电脑同步方法

When you are old

最近访客