一个本地分支能关联两个远程仓库吗_使用git分支保存hexo博客源码到github

hexo是当前最火的静态博客框架,支持Markdown格式文章编辑并自动生成对应的静态网页,简单高效令人爱不释手。

使用hexo写博客的流程通常是,

  1. 通过hexo new post_name命令,会自动在source/_post目录下生成一个待写的post_name.md文件
  2. 编写完该md文件后,用hexo generate编译生成对应的HTML文件
  3. 发布之前,可以用hexo s本地预览,然后通过hexo deploy发布到远程仓库的master分支,然后你的个人站点就能看到刚才新加的文章了

困扰

然而,使用过hexo搭建个人博客的朋友们想必都会遇到博客源码保存的问题。即远程仓库只会保存hexo发布后的静态HTML文件,你的博客md源文件、主题配置等还在本地,一旦电脑磁盘坏了或者换了电脑,就无法在之前仓库的基础上继续写博客。针对此问题,有不少博主会在github上单独另起一个repository来专门保存博客源文件,每次发布完新文章,需要手动地将source/post下的md文件上传到源文件对应的repository,确实也能解决问题,但总归是麻烦。后来偶然看到聪明的网友借助git分支来巧妙地实现用同一个仓库保存静态网页和博客源码,自己试了下确实很赞,故总结之。

解决办法

新建git分支

因Github Page要求使用master分支作为发布网站的源代码,我们只能用master分支来保存hexo生成的静态网页,对于博客源码,可以新建一个source分支来存储。在github上打开Pages对应的仓库,也就是以"username.github.io"命名的仓库,然后建立一个source分支,如下图:

e18236d0f5c1cab2e75d41f698fadf33.png

因为我已经创建过source分支,故下方会显示目前该仓库上有master和source两个分支。其中source分支显示打钩,表示当前仓库的默认分支已经是source而不是master了,下面会讲。

更改仓库的默认分支

github上的仓库初始都会有个master分支,也就是默认分支。对于一个仓库project_name,当我们通过git clone https://github.com/sherlockyb/project_name.git下载代码时,实际拉取的是默认分支master对应的代码。而我们用hexo写博客时,通常是与md源文件打交道,对于deploy生成的master分支代码并不需要我们关注,因此可将仓库的默认分支改为保存源码的source分支,这样通过git clone拉取的就是source分支代码了。

在仓库的主页面,通过Settings -> Branchs,可以看到Default branch的Tab,显示的默认分支是master,可以勾选source,然后update即可将默认分支设置为source,如下图:

374335eda6e53530d69e5862bdbf930b.png

将本地hexo目录与远程仓库关联

进入到本地hexo工程目录,也就是我们通常执行hexo new post等命令的目录,执行如下操作:

git remote add origin https://github.com/sherlockyb/sherlockyb.github.io.git

推送博客源码

将本地的md源文件、站点配置文件等推送到source分支。

因为我们只需要保留博客源码,其他无关的文件并不希望推送,需要确保配好了.gitignore文件,通常如下:

.DS_StoreThumbs.dbdb.json*.lognode_modules/public/.deploy*/

然后依次执行如下命令:

git add .git commit -m 'hexo source post'git push origin source

删除public等文件(可选)

因为source分支是从master分支新建的,初始代码实际就是master的拷贝,因而master中已有的public等deploy生成的文件也会一起带过来,这些都不算是博客源文件,如果你也觉着source分支还存着这些有些别扭,就可以先在本地把它删掉,然后执行:

git add .git commit -m 'DEL: public things which only for deploy'git push origin source

执行完之后,你的仓库大概就是长这个样子:

f35ebeaf41953872a6b9be1e685aec5c.png

后续即便你再发布博客时,deploy生成public文件,在提交博客源码时,也不会将其带上去,因为有.gitignore将其忽略了。

新环境

假设我们换电脑了,要在新环境继续在原有仓库基础上撸文章,此时通过git clone将博客源码拉到本地,然后安装、初始化hexo就能搞定:

git clone https://github.com/sherlockyb/sherlockyb.github.io.git sherlockybcd sherlockybnpm install hexonpm install hexo-deployer-git -save​// hexo环境配置好后,继续像之前一样hexo new post_name...

注意事项

确保hexo deploy推送的是master分支,hexo目录下的_config.yml文件通常会配置deploy推送的目标地址,这个一般在最初使用hexo时,就会配置为master,不用改动:

# Deployment## Docs: https://hexo.io/docs/deployment.htmldeploy: type: git repo: https://github.com/sherlockyb/sherlockyb.github.io.git branch: master

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268984.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git的入门摸索和入门研究

git官网:https://git-scm.com/ git教程---菜鸟教程:http://www.runoob.com/git/git-tutorial.html git教程---廖雪峰:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ git视频教程---极客学院&#xf…

您的光纤电缆和测试仪是否准备好用于400G以太网?

在大型超规模和云数据中心提供商的推动下,信令和收发器技术的进步推动了下一代传输速度的发展。现在,通过多模和单模光纤的400G以太网应用有多种选择,更多选项即将推出。国外的谷歌、Facebook和微软等大公司正在推动创新,以支持80…

网络游戏测试过程

游戏测试起因近几年来,网络游戏成了网络最新的弄潮儿,从盛大之传奇般的掘起,吸引了无数公司的眼球。但由于随着玩家的品位的升高,代理费用的上升,单一的代理国外游戏的模式已经很难在国内立足,而有中国传统…

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException:

解决: 1 在SQL语句中使用#{name,jdbcTypeVARCHAR} ​指定JDBC类型 错误的: 修改后的:

uni中动态加载class_Java基础·类加载、反射

原文:Java基础类加载、反射 - 掘金 作者:宸道移动安全团队15.1 类的加载概述当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三步来实现对这个类进行初始化。1.加载:是将class文件读…

mysql 安装目录说明

转载于:https://www.cnblogs.com/xiluhua/p/7137663.html

如何测试光纤系统中的插入损耗

由于插入损耗是影响光纤链路支持给应用能力的主要性能参数,因此根据行业标准,光纤认证测试需要插入损耗。像福禄克网络的CFP光纤测试仪这样的光损耗测试集,通过在一端使用光源,在另一端使用功率计精确测量从另一端发出的光的数量&…

oracle脚本

监控Oracle数据库的常用shell脚本 作者: 出处:uml.org.cn ( 22 ) 砖 ( 33 ) 好 评论 ( 0 ) 条  进入论坛 更新时间:2006-01-25 10:25关 键 词:Oracle shell阅读提示:这篇文章介绍了DBA每天在监控Oracle数据库方面的职责,讲述…

设计模式之观察者模式demo

代码 public class WeatherData {private float temperature;private float pressure;private float humidity;//聚合private CurrentConditions currentConditions;public WeatherData(CurrentConditions currentConditions) {this.currentConditions currentConditions;}pu…

在数据中心空间进行测试

根据您要测试的数据中心功能区域的不同,您将遇到不同的应用程序、布线和连接。了解数据中心的功能领域以及每个领域中可能需要测试的内容有助于为数据中心测试做好准备。 首先空间是什么? 行业标准,如ANSI/TIA-942-A数据中心基础设施标准、I…

光纤测试仪:光纤插入损耗测试程序

当今多模光纤系统中的插入损耗测试要求使用环绕通量(EF)发射条件来降低测量不确定度。此方法控制如何将光发射到被测光纤中,以防止可能导致悲观结果的过量发射或可能导致乐观结果的不足发射。福禄克网络仅为所有多模光纤类型提供850 nm和1300…

设计模式之模版方法模式demo

public abstract class SoyaMilk {//模版方法 可以做成finaL,不让子类去覆盖final void make(){select();addCondiments();soak();beat();}void select(){System.out.println("第一步,请选择好的新鲜黄豆");}//添加不同的配料,抽…

【网络文件协议】

网络文件系统是基于网络的分布式文件系统,其文件系统树的各节点可以存在于不同的联网计算机甚至不同的系统平台上,可以用来提供跨平台的信息存储与共享。当今最主要的两大网络文件系统是Sun提出的NFS(Network File System)以及由微…

浅谈协方差矩阵

一、统计学的基本概念 统计学里最基本的概念就是样本的均值、方差、标准差。首先,我们给定一个含有n个样本的集合,下面给出这些概念的公式描述: 均值: 标准差: 方差: 均值描述的是样本集合的中间点&#xf…

验证测试线时为什么会出现“正损耗”?

验证测试参考线很容易,对吗?是的,通常……但不总是。通过参考程序将功率计设置为0 dB后,对于单模,配对连接器对的损耗预计小于0.20 dB(例如-0.20 dB)。让我们研究一种损耗不是负的情况&#xff…

OpenLDAP的安装测试及管理

简介:LDAP(轻量级目录服务访问协议,Lightweight Directory Access Protocol)基于X.500标准,支持TCP/IP,使用简单方便。现在越来越多的网络应用系统都支持LDAP。   目录是一个为查询、浏览和搜索而优化的专业分布式数据库&…

设计模式之模版方法模式的钩子方法

public abstract class SoyaMilk {//模版方法 可以做成finaL,不让子类去覆盖final void make(){select();if(customerWantCondiments()){addCondiments();}soak();beat();}void select(){System.out.println("第一步,请选择好的新鲜黄豆");}/…

利用福禄克铜缆测试仪测试铜缆的插入损耗

由于插入损耗发生在任何类型的传输中,因此它也是铜缆布线系统中的一个性能参数。与光纤相比,铜缆布线系统的插入损耗要大得多。另一个关键区别是,铜缆上的信号损耗随着信号频率的变化而变化,对于更高频率的信号,铜缆链…