美文网首页我爱编程
如何多端同步 Hexo 框架博客

如何多端同步 Hexo 框架博客

作者: SkyRiN | 来源:发表于2018-05-19 13:27 被阅读169次

    多地同步的必要性

    这个必要性其实不用多说,用着用着你就自己能体会到,比如头天晚上在家里发布了一篇技术文章,第二天在公司 Coding 的过程中突然想到之前发的文某个地方有 Bug ,这时如果你的博客只搭在家里那台 PC 上的话就只能等到下班回家去改,或者在 Coding 时突然灵感迸发写出了连自己都佩服的神码想要急于分享出去时,就只能蛋疼的憋着回家写了,嗯,这可能就是最需要多地同步的场景了。

    使用 U 盘

    使用 Git

    嗯,这才是正确的操作姿势。
    我的博客用的 Hexo 搭建的,所以接下来以此演示,其他使用 jekyll 或 wordpress 等框架搭建的博客同理可参考。

    本地初始化一个 git 库存放整个站点

    比如我的 Blog 就放在D:\Pages\repos\Hexo-Blog库下。

    image.png

    然后blog目录就是整个站点的根目录了,其实我们发布出去的站点就是public/目录而已,其它的东西都是用来生成这个目录的必要文件。

    image.png

    处理多层 git 库嵌套的问题

    由于站点主题是从 github 直接 pull 下来的,所以blog/themes/your-theme/应该也是一个 git 库,git 库不支持多层嵌套,但好像有个子 git 库的概念但是处理起来较麻烦,所以这里我的解决方式很简单粗暴 ———— 直接删除blog/themes/your-theme/库下的.git目录让它变成一个普通目录,这样就有一个不能直接同步更新主题的问题,但我感觉这并不是一个问题,因为主题的更新周期很长,非重大 Bug 或功能一般不会更新,而且主题和文章并不强关联,所以实在需要更新主题的新版本时可以先 pull 到别的目录然后 copy 过来。

    关联到远程仓库

    这里可能有同学感到懵逼,因为我在使用 Hexo & GitPage 搭建博客一文中为 Hexo 安装了 deploygit 插件用来部署文章,这个插件也是和 git 仓库关联的,这里再次关联一个远程仓库不就嵌套了吗?当然不会,因为这个插件是安装在本地的,可以直接使用 npm 安装,所以这个插件没必要提交到 git 仓库,因此默认生成的.gitignore文件就已经包含了.deploy*/以及其它一些可自动生成没必要提交的目录及文件。

    blog/.gitignore file

    .DS_Store
    Thumbs.db
    db.json
    *.log
    node_modules/
    public/
    .deploy*/
    CNAME
    

    远程仓库下的文件

    image.png

    Ok,到这里你可能已经明白了这个多地同步的思路:打比方说这个 Hexo 框架及 Node.js 环境是个印钞机,部署时它所生成的public/站点目录就是钞票,那么我们同时想在家里和公司印钞怎么解决?印钞机两边都一样,那就是把印钞的模板 fork 两份出来,只需保证两套模板的同步就能确保两边印出来的钞票都是真的了。所以上面的远程仓库就相当于包含了整个印钞模板,整体思路就是这么简单。

    关键部分的操作

    同步了两边的环境都一致并且都可以使用 hexo clean && hexo d 部署文章后,还需注意的就是每次文章发布完成后执行如下命令:

    $ cd repos/Hexo-Blog/
    $ git add .
    $ git commit -m "commit msg."
    $ git push origin master
    

    每次开始写文章之前执行如下命令:

    $ cd repos/Hexo-Blog/
    $ git pull origin master
    

    每天结束工作时都 commit 一下是个优秀的习惯。

    “偷懒是人类进步的原动力”

    每次动一行代码都要敲一堆命令来发布和同步?能不能一键搞定这些操作呢?当然可以,不要忘了 Windows 批处理,我们在 repos/Hexo-Blog/ 下创建三个 bat 脚本

    blog-pub

    cd /d D:/Pages/repos/Hexo-Blog/blog
    
    hexo clean&&hexo d
    
    pause
    

    blog-pull

    cd /d d:/Pages/repos/Hexo-Blog
    
    git pull origin master
    
    pause
    

    blog-push

    cd /d D:/Pages/repos/Hexo-blog
    
    git add .
    git commit -m "add post"
    git push --all
    
    pause
    

    然后这些操作只需双击就能搞定了

    既然做到这一步了,那么就能更进一步,我们可以给 Windows 设置一个定时任务,让它开机拉代码,下班前 push 代码,以防忘记

    1、打开任务计划程序(taskschd.msc)

    2、Alt+A+B 创建基本任务

    setup1 setup2 setup3 setup4 setup5 setup6

    经过如上设置,在每天的 17:25 Win任务计划程序就会自动执行提交代码的脚本了。

    文中没具体提到怎么创建仓库,怎么关联仓库等等,这些都是 git 基础知识,需要的同学可以参考 Git 常用命令

    相关文章

      网友评论

        本文标题:如何多端同步 Hexo 框架博客

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