今天看到一个朋友在github上面的issue
大概问题就是怎么在不同的电脑上面使用
git有个这么个东西Submoudle中文叫做子模块

具体使用教程看这里Git-工具-子模块

这里只说怎么搞hexo多主题切换和换电脑啥的

开始

首先分两种情况
1. 主题的出了配置文件 或者其他文件没有DIY过,都是直接clone原来的主题作者的
2. 主题的CSS JS 文件自己改过

没有修改主题源码

如果没有修改主题源码那就按照下面的步骤来作

备份主题配置文件

文件在

themes/主题名字/_config.yml

没错就是他,如果你修改了默认的配置,就拷贝到另外的目录

删除主题文件

没啥说的 删除对应的主题文件,也可以直接删除themes文件夹

建立子模块

在主目录执行下面命令

git submodule add <主题的git地址> themes/<主题名字>

添加完之后 会在主git目录下面生成一个.gitmoudles文件

获得主题文件

执行完上面的步骤之后主题并不会自动clone到对应的目录
要clone到本地 只需要在博客的git主目录执行

git submodule update --init --recursive

这个时候主题就会直接下载到对应的文件夹

恢复

这个就简单了 刚才备份的主题配置文件覆盖回去就行了
好了这样就设置完了

命令

下次更新主题文件就直接执行

git submodule update

即可

更改过主题源代码

上面的看完再看这个,这个就更简单了

fork主题源代码

找到你喜欢的主题,点击Github的fork,然后就会在你自己的代码库出现一份主题的代码

建立本地子模块

跟上面一样的步骤建立
只不过在添加子模块的时候把命令

git submodule add <主题的git地址> themes/<主题名字>

这里的主题git地址换成你自己库的地址

git submodule add git@github.com:luodaoyi/hexo-theme-next.git themes/next

后面的设置跟前面一模一样

提交自己的主题更改

按照没有修改过主题的步骤弄完 恢复好了主题设置检查没啥问题之后
然后进入主题代码的目录

cd themes/主题名字

提交主题的更改

git add .
git commit -m "剥离主题"
git push -u origin master

然后在自己的分支上面跟随原主题作者的更新 处理合并 生成的时候直接pull到本地就行

为啥要这样做

为啥要这样做 多费劲

这样做的有点有几个

  1. 首先主题设置跟站点设置分离,主题本身就是模块化的为啥非要搞到一起
  2. 以后可以随便换主题玩更改站点配置里面的主题名字即可
  3. 可维护性很好
  4. 方便换电脑

多主题切换

按照上的做法可以设置很多套主题
一套主题对应一套主题配置 可以备份到主题文件里面
随时切换主题
切换主题的时候只需要更改站点配置里面对应的主题名字就行了

换电脑了

这个更简单 换了新电脑 配置好git环境和 Node.js 环境
这个时候只需要clone一分自己的源代码到本地
在本地执行

npm install -g hexo-cli
npm install
git submodule update --init --recursive

好了搞定了

hexo多主题切换的更多相关文章

  1. Android 主题切换 小结

    前言 我们用手机的时候经常看到 设置里面有夜间模式和白天模式来更换APP的主题,以前以为很简单,但是实际做起来还是有各种不完美,那么我们也要去了解各种解决方案来丰富我们的知识,现在我们就来看看各种优劣 ...

  2. windows phone主题切换(换肤)

    之前项目做了个主题切换的功能,最后客户没来得及出第二套界面给放弃了,默哀中... 为了不让它就这样流产了,就放博客共享吧. 首先说明下原理:这个切换是通过重写资源字典里指定的样式,在运行的过程中加载指 ...

  3. Android主题切换方案总结

    所谓的主题切换,就是能够根据不同的设定,呈现不同风格的界面给用户,也就是所谓的换肤. 1.将主题包(图片与配置)存到SD卡上(可通过下载或手动放入指定目录),在代码里强制从本地文件创建图片与配置文字大 ...

  4. extjs folder is lost解决方法 和 FineUI主题切换时 iframe内的内容主题不变的解决方法

    错误原因:extjs包和FineUI版本不一致 或者是 webconfig配置中 没有设置为任何人可访问  解放方法下载和FineUI版本相同的extjs包就ok了 解决方法:FineUI主题切换时 ...

  5. Hexo 官方主题 landscape-plus 优化

    博主喜欢简洁大方的Hexo主题,看了不下100个主题之后,最终选择了 landscape-plus 主题(针对中国大陆地区,对Hexo官方主题landscape进行优化后的版本).更多Hexo主题资源 ...

  6. iOS开发之App主题切换完整解决方案(Swift版)

    本篇博客就来介绍一下iOS App中主题切换的常规做法,当然本篇博客中只是提到了一种主题切换的方法,当然还有其他方法,在此就不做过多赘述了.本篇博客中所涉及的Demo完全使用Swift3.0编写完成, ...

  7. CI框架主题切换的功能

    CI框架主题切换的功能 本人接触到这个框架不就,属于菜鸟 , 公司现在用CI框架做项目 ,老大要做一个主题切换的功能,说明功能的要求我的脑子里瞬间有几个想法. 脑子里最简单的就是设置全局变量 如 : ...

  8. hexo next主题为博客添加分享功能

    title: hexo next主题为博客添加分享功能 date: 2018-01-06 20:20:02 tags: [hexo博客, 博客配置] categories: hexo next主题配置 ...

  9. Android主题切换—夜间/白天模式探究

    现在市面上众多阅读类App都提供了两种主题:白天or夜间. 上述两幅图片,正是两款App的夜间模式效果,所以,依据这个功能,来看看切换主题到底是怎么实现的(当然现在github有好多PluginThe ...

随机推荐

  1. HDU - 6370 Werewolf 2018 Multi-University Training Contest 6 (DFS找环)

    求确定身份的人的个数. 只能确定狼的身份,因为只能找到谁说了谎.但一个人是否是民,无法确定. 将人视作点,指认关系视作边,有狼边和民边两种边. 确定狼的方法只有两种: 1. 在一个仅由一条狼边组成的环 ...

  2. 广州亿能自动化测试沙龙 - 自动化测试管理平台设计 [ 沙龙PPT免费下载 ]

    广州亿能自动化测试沙龙 - 自动化测试管理平台设计 [ 沙龙PPT免费下载 ] http://automationqa.com/forum.php?mod=viewthread&tid=244 ...

  3. shell文件安全与权限 笔记

    主要学习: 文件盒目录的权限 Setuid Chown和chgrp Umask 连接符号 一个文件已经创建,就具有三种访问方式 读,可以显示该文件的内容 写,可以编辑或删除它 执行,如果该文件时一个s ...

  4. poj2533

    /*解题思路请看给分类的最长递增子序列算法解析那篇文章*/ #include<stdio.h> #include<string.h> int find(int *c,int l ...

  5. [CF19E]Fairy

    给定一张n个点m条边的无向图,求删除哪一条边后,能够确保构成一个二分图,输出所有可能 解法:我们知道二分图的性质是没有奇环,这道题我们也应该从这个方面入手来考虑. 如果没有奇环的话我们当然想怎么删就怎 ...

  6. CentOS 7安装Xfce和VNC

    很多VPS商提供的CentOS 7镜像只有最小化安装,这样就只能在命令行下操作,如果要调试代码的话,还是图形化界面方便,而且CentOS自带的Gnome和KDE都比较占内存.启动桌面后就占用了400M ...

  7. Pow,求x的y次幂

    算法分析:很显然用递归.但是直接用递归会造成栈溢出,时间复杂度是o(n).所以要用分治思想,时间复杂度是o(logN). public class Power { //栈溢出,时间复杂度是o(n) p ...

  8. Rancher+K8S部署手册

    目前创建K8S集群的安装程序最受欢迎的有Kops,Kubespray,kubeadm,rancher,以及个人提供的脚本集等. Kops和Kubespary在国外用的比较多,没有处理中国的网络问题,没 ...

  9. Pandas时间差(Timedelta)

    时间差(Timedelta)是时间上的差异,以不同的单位来表示.例如:日,小时,分钟,秒.它们可以是正值,也可以是负值.可以使用各种参数创建Timedelta对象,如下所示 - 字符串 通过传递字符串 ...

  10. JDK_环境变量

    1. 在系统环境变量中设置: ClASSPATH中输入: ".;C:\Program Files\Java\jdk1.7.0_07\jre\lib\rt.jar;"//java的安 ...