美文网首页Githubgithub博客@IT·互联网
【9】Hexo博客的跨设备同步

【9】Hexo博客的跨设备同步

作者: 代码咖啡 | 来源:发表于2016-10-13 12:19 被阅读3751次

本文是《程序猿叨叨叨》系列文章中的其中一篇,想要了解更多相关的文章,欢迎猛戳蓝字前往阅读。

前情提要

前几天使用hexo搭建了Github博客,今天在公司的电脑上想要同步Github博客到本地,遇到了点坑,查询了 一下网上的资料,现在记录一下,也算给遇到同样问题的小伙伴们一个参考。

多设备同步

同步思路与Github推拉源码思路相同,使用git指令,保持本地的博客文件与Github上的博客文件相同即可,其步骤如下:

  • 使用hexo搭建部署Github博客
// 在本地博客根目录下安装hexo
npm install hexo
// 初始化hexo
npm init
// 安装依赖
npm install
// 安装部署相关的配置
npm install hexo-deployer-git

详情参考这里

  • 上传博客工程
    上一步部署博客到Github以后,我们可以在Github仓库的master分支上看到我们上传的博客文件。


    Github主分支

    但是这个博客文件是不包含hexo配置的,所以我们需要新建分支,使用git指令将带hexo配置的Github工程文件上传到新建的分支上。


    Github上新建分支
    在本地博客根目录下使用git指令上传项目到Github:
// git初始化
git init
// 添加仓库地址
git remote add origin https://github.com/用户名/仓库名.git
// 新建分支并切换到新建的分支
git checkout -b 分支名
// 添加所有本地文件到git
git add .
// git提交
git commit -m ""
// 文件推送到hexo分支
git push origin hexo
  • 其他设备上clone下Github上新建的分支的文件到本地
    在另一台设备上使用git指令下载Github新建分支上的文件:
// 克隆文件到本地
git clone -b 分支名 https://github.com/用户名/仓库名.git
  • 本地写文章
    source->_posts文件夹下新建md文件,并编辑好保存后:

    QQ截图20161013120208.png
  • 部署到Github

// 安装hexo
npm install hexo
// 注意这里不需要hexo初始化:hexo init;否则之前的hexo配置参数会重置
// 安装依赖库
npm install
// 安装部署相关配置
npm install hexo-deployer-git
  • 同步项目源文件到Github
// 添加源文件
git add .
// git提交
git commit -m ""
// 先拉原来Github分支上的源文件到本地,进行合并
// 分支名后面的“--allow-unrelated-histories”是为了弹出“fatal: refusing to merge unrelated histories.”的错误
git pull origin 分支名 --allow-unrelated-histories
// 比较解决前后版本冲突后,push源文件到Github的分支
git push origin 分支名

至此多设备同步到此为止。

问题解决

由于公司里的电脑是win 10所以在部署博客的过程中会遇到一些问题,整理如下:

  • Deployer not found: git
    在终端执行命令:
npm install hexo-deployer-git --save

然后继续执行hexo deploye指令进行部署。

  • fatal: could not read Username for ‘ https://github.com ‘: Invalid argument
    由于使用的是https协议,安全性较高,所以系统终端不允许部署,所以我们该用 ssh,修改本地博客hexo配置文件_config.yml,将repository参数修改如下:

    repository: ssh://git@github.com/iNerdStack/inerdstack.github.io
    继续执行hexo deploye指令进行部署。
  • Could not read from remote repository
    这是因为系统没有添加github的ssh信任到本机,所以我们要在命令行执行:

ssh -T git@github.com
yes

参考:
【知乎】使用hexo,如果换了电脑怎么更新博客?

相关文章

网友评论

  • GRIM:直接将hexo的配置文件保存到当前分支也是可以的吧?
    代码咖啡:@GRIM 这个还没有试过哦
  • 你根本不是老司机:有个点不太理解
    这个新建的分支的空的吗?--按你的方法新建后,里面有master继承的文件,那我要怎么做,直接push会有错误,而且,这些文件我们要pull下来吗?
    代码咖啡:如果新的分支有内容,那么先pull下来,在push上去
    代码咖啡:git checkout -b 新分支名;这条命令是新建分支并切换到新建的分支,这句指令执行后,你所在的分支就是新建的分支,新建的分支是空的,直接push origin 新分支名可以将本地文件上传到新分支上
  • c37b3d0d513b:你好,我卡在:在另一台设备上使用git指令下载Github新建分支上的文件,请问能详细介绍一下吗?感谢!
    代码咖啡:@antszone 试试hexo 指令可不可以用,不可以就下载nodejs或hexo
    c37b3d0d513b:@代码咖啡 恩恩,谢谢!我clone到了另一台电脑上,那我之后该怎么配置另一台电脑呢?这个部分细节还不是很清楚,希望能给个指点!谢谢:smile:
    代码咖啡:@antszone 用[git clone -b 分支名 http://...]指令将分支上的文件下载到本地
  • d0d65ef6de1a:还有就是你的顺序有点问题,你应该在本地创建分支的而不应该在github上面不然,你的那个hexo就会有发布后的内容
    代码咖啡: @Troland 谢谢指导哦 这里其实多次部署和和分支同步后都会有分之出现发布内容的问题,这里有一个解决方法,就是借助.gitignore文件,将发布的内容过滤掉。
  • d0d65ef6de1a:首先你在本地创建的那个hexo分支,当在hexo分支下如果先add,然后去拉取从远程服务器的分支进行合并的时候会有错误:fatal: refusing to merge unrelated histories.
    在git pull origin hexo 添加----allow-unrelated-histories,就可以了。
    代码咖啡:@暗涌_fd5c :sweat_smile: 已更新
    18y:@代码咖啡 现在都没改回来么????
    代码咖啡: @Troland 谢谢建议哈 学习了。其实之前在部署的过程中有察觉到,但是没有注意,不好意思哈
  • 62322bc24caf:弄了几个晚上都不行。。。😞
    代码咖啡:@七诚 是使用hexo命令吗 还是用git命令同步分支上的工程?
    62322bc24caf: @inerdstack 总是发布不到github上,明明已经了解
    代码咖啡: @七诚 请问是哪里出错论

本文标题:【9】Hexo博客的跨设备同步

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