前言
我们在使用Hexo写博客的时候发现在一台电脑上写博客,更新博客倒是没有什么问题,可是如果你要换一台电脑然后更新博客发现就比较麻烦。网上类似的源码迁移也有讲,不过我个人还是感觉操作太复杂了。所以自己用Oschina的代码托管做了一个Hexo的源码备份和迁移。下次你要在其他的电脑上写博客也很简单,git命令建仓,同步源码,编译部署都是可以实现的,当然这其中有相关git环境的配置是必须的。不过相比较而言是一个源码迁移和多地编辑的一个可选方案。无论在哪里从云端拉源码到本地,然后将编辑后的源码push到云端,这也是一个非常好的源码备份习惯。
操作流程
1.OsChina注册账号,建立私有代码库。写到这里大家应该就知道了我为什么选了OsChina而没有选github做代码托管了。因为github上建立私有库并不是免费的。但是开源中国上没有限制。
2.在你的电脑端建立一个文件夹,随意命名。然后git init初始化git环境,建立仓库。git clone你的OsChina上的分支。特殊说明,在OsChina创建私有库的时候,至少要添加一个README文件,否则空的仓库同步的过程会有问题。
3.将你的HEXO源码copy到该文件夹下。public不用copy,这个是HEXO编译自动生成的。然后在该文件目录下调起git bash命令窗口。提交代码到云端。相应的命令是:
- git status:查看本地代码库和云端代码库的差异
- git add :添加修改的文件到本地分支,跟踪修改。
- git commit :提交跟踪修改的文件到本地仓库分支。(全部提交,可以跳过add,部分跟踪修改需要add)
- git push <远程仓> 提交本地仓库的修改到云端代码仓。
说明:这里只是简要说明了git版本控制在代码提交时的常用的命令,更多了解请上git官网学习,git版本控制非常强大,如果你还只是知道SVN,学习一下有好处的。
4.提交代码成功后表示你的备份已经完成。现在假设你在另一台电脑要编辑hexo博客并部署到github上。首先建一个文件夹,git init,git clone你OsChina上的源码到本地。
5.此处默认你另一台电脑的hexo环境和github配置都是OK了的,直接就可以写博客了,然后在该目录调起CMD命令行,hexo g,hexo d部署博客了。部署完成后记得push备份源码。
补充说明
我们如果有使用第三方的主题包,有执行过一个操作就是 cd theme/xxx,然后git pull来更新过主题包,这个操作在该目录会生成一个.git的隐藏文件。我们更新完后应该删除它。自己使用过程中发现不删除会导致两个问题:
①编译后部署自己的博客,博客首页的访问加载速度会越来越慢,到后来浏览器几乎处于卡死状态。我现在也不是百分百肯定是它导致的,但是在我删除这个文件夹后,该问题消失。
②不删除的话,在首次备份代码到私有仓库时,它因为也是一个git的本地代码仓库,会导致这个主题包不会push到云端。所以你在另一处更新的时候,这个主题就缺省了,你部署博客后首页就是空白的。但是删除.git后,主题包的代码正常备份和同步,然后就不会有这个问题。