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

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

前情提要

前几天使用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,如果换了电脑怎么更新博客?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏smy

windows下操作linux虚拟机映射网络驱动器中文件提示chmod权限不足解决方案

为了方便操作,linux虚拟机会通过windows下连接网络驱动器的方式共享自己的文件,对于前端来说,我想把gulp放在windows磁盘,操作虚拟机中的php...

1753
来自专栏技术支持log

GET 和 POST 请求 http 站点时数据是否加密?

GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

4721
来自专栏Albert陈凯

Hadoop数据分析平台实战——020Hadoop Shell命令(初学跳过)离线数据分析平台实战——020Hadoop Shell命令(可跳过)

离线数据分析平台实战——020Hadoop Shell命令(可跳过) Hadoop Shell命令简单描述 Hadoop的Shell命令主要分为两类: 一类是启...

3385
来自专栏深度学习之tensorflow实战篇

解决SSH连接linux中文显示乱码问题

添加windows下mysql服务 以管理员身份打开cmd,执行 mysqld –install net stop mysql 忘记密码找回 找到m...

4935
来自专栏Java帮帮-微信公众号-技术文章全总结

04.Linux系统目录结构

Linux 系统目录结构 登录系统后,在当前命令窗口下输入命令: ? 你会看到如下图所示: ? 树状目录结构: ? 以下是对这些目录的解释: /bin: bin...

3974
来自专栏LanceToBigData

Hadoop(三)手把手教你搭建Hadoop全分布式集群

前言   上一篇介绍了伪分布式集群的搭建,其实在我们的生产环境中我们肯定不是使用只有一台服务器的伪分布式集群当中的。接下来我将给大家分享一下全分布式集群的搭建!...

4779
来自专栏自由而无用的灵魂的碎碎念

使用Oracle SQL Developer 连接SQL Server

上次,将MySQL数据迁移到Oracle介绍了如何使用oracle sql developer连接mysql。同样,sql server的连接也比较相似。

1401
来自专栏Java技术分享圈

杨老师课堂之JavaWeb项目架构之NFS文件服务器

当用户A通过互联网上传文件时,经过负载均衡,随机或者定向分配到某个节点。但是当用户B去下载这个文件的时候,并不确定会向哪个节点发送请求,这样会导致用户存在一定几...

1773
来自专栏云计算教程系列

在CVM上使用rbenv安装RoR

Ruby on Rails(官方简称为Rails,亦被简称为RoR),是一个使用Ruby语言写的开源Web应用框架,它是严格按照MVC结构开发的。它努力使自身保...

1788
来自专栏hbbliyong

Ubuntu 安装 JDK8 的两种方式

ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgra...

1.1K9

扫码关注云+社区

领取腾讯云代金券