hexo 博客利用 github 分支同步源文件

hexo 是一个优秀的静态博客工具,唯一的不足就是源文件无法同步,让人几乎只能在一台电脑上写博客,为了解决这个问题,我们可以使用 Github 来管理我们的 hexo 源文件,具体思路就是:在我们博客的远程仓库中新建一个分支,用这个分支来存储博客的源文件,这样我们每次在更新博客并部署之后可以顺手多执行两条命令将源文件同步到远程分支中去,不需要做任何环境切换的操作,还可以将部署和同步操作写成一个命令脚本,自动执行以上命令。建立同步的过程很简单:

初始化版本库&建立仓库关联(已与远程仓库关联的可忽略这一步)

一般根据 hexo 教程一步步建立起来的博客都没有跟自己的远程仓库建立关联,查看是否关联的方法是输入 git remote 看是否有关联的远程仓库:

可以看到我这里有一个名叫 origin 的仓库与我本地的文件夹关联,如果当前还没有关联,先用 git init 命令将你的本地文件夹初始化成一个版本库,然后使用 git remote add origin 你的github仓库地址 命令来建立与远程仓库的关联,这里的 origin 是你定义的远程仓库在本地的名字,你也可以叫别的,一般命名成 origin,这样就建立好了关联了,使用刚刚的 git remote 命令检测会看到你关联的仓库。

提交文件

像正常提交文件那样使用 git addgit commitgit push 命令提交文件,但这里在 push 的时候要注意新建一个分支去存你要提交的源文件,具体命令是 git push -u origin HEAD:分支名,这里的分支名自己取,HEAD 是版本库的头指针的意思,代表本地版本库里面的最新版本,origin 是刚刚你自己添加远程关联时候的名字,如果你的不是叫 origin 就写成自己定义的名字, -u 参数是为了建立本地分支与远程分支的关联,以后 push 的时候直接输入 git push 就可以了,所以这整个命令的意思就是:把本地最新版本的代码提交到远程仓库的某个分支上去,如果远程仓库还没有这个分支,就在远程仓库里新建一个分支,然后将它跟本地当前分支关联起来。提交之后你就会发现自己的 github 仓库多了一条分支,就是你刚刚提交的那个分支。 ??至于这里为什么不先在 github 上面手动建立分支,然后再在本地建立关联,是因为如果是远程手动建立分支会自动以 master 分支为模板建立一份一模一样的文件,而我们仓库里面 master 分支存的都是经过 hexo 编译的文件,跟源文件完全不一样,新建这样一个分支之后还要手动把里面的文件删掉,另一个原因是如果在远程手动建分支,你在本地还得手动用 git fetch origin 拉取远程分支的更新,然后再手动建立与分支的关联,比较麻烦,当然如果你是刚开始部署 hexo,github 仓库里面还一点东西都没有的话这些问题都不存在,那就随意。

设置默认分支

最后我们需要把你新建的那个分支设置成 github 的默认分支,这样做的原因是为了你以后在别的机器上拉取代码的时候能够直接拉取源文件,不用再指定分支。

在这里选择好默认分支之后,update就行了。现在你就可以使用 github 来同步自己的 hexo 博客源文件啦~

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LinXunFeng的专栏

构建FTP服务器

4075
来自专栏JavaEdge

intellij idea tomcat热部署配置1.设置Debugger-HotSwap2.项目设置3.配置tomcat

在setting界面,打开Debugger-HotSwap选项,确保勾选了Build project before reloading classes,同时选择...

1061
来自专栏后端技术探索

nginx日志

通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息;通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。因此,将日...

1563
来自专栏IMWeb前端团队

webpack2 终极优化

? webpack是当下最流行的js打包工具,这得益于网页应用日益复杂和js模块化的流行。webpack2增加了一些新特性也正式发布了一段时间,是时候告诉大...

39111
来自专栏小樱的经验随笔

一个很easy的脚本--php获取服务器端的相关信息

存档: 1 <html> 2 <head> 3 <meta http-equiv="content-type" content="...

3958
来自专栏鸡蛋君

Centos7.x下更改SSH的默认端口

2352
来自专栏pydata

RHadoop环境搭建

在集成R和hadoop之前需要将hadoop以及R运行环境安装好,hadoop的安装可参见hadoop2.4.1安装笔记. 1.下载相关安装包:

1022
来自专栏令仔很忙

新手学JAVA(十一)-多线程----线程的生命周期

当一个线程被创建并启动之后,并不是一开始就处于执行状态,已不是一直处于运行状态。线程也是有生命周期的,包括:创建(New)、就绪(Runnable)、阻塞(B...

1001
来自专栏上善若水

006-centos7设置静态ip

第二步:去对应的网络接口配置文件修改配置,注意文件名称是(ifcfg-默认第一个网络接口名称),文件路径是/etc/sysconfig/network-scri...

1053
来自专栏Java3y

Linux进程管理

每个用户均可同时运行多个程序。为了区分每一个运行的程序,Linux给每个进程都做了标识,称为进程号(process ID),每个进程的进程号是唯一的。

3910

扫码关注云+社区

领取腾讯云代金券