更新记录

更新记录

2021-01-03

hexo-butterfly 魔改说明

hexo-butterfly-魔改说明

魔改需要注意的点:

​ 单独将主题的配置文件拎出来(butterfly/_config.yml)调整为_config.butterfly.yml,放置在项目根目录,避免主题迭代升级覆盖了原有的配置信息

针对相关资源的引用,不建议把项目所需的文件或者资源放在主题下的source文件夹下,伴随着主题的迭代升级会将里面的内容覆盖掉,因此需要在项目根目录下的source文件夹下创建文件夹存放资源数据

1.hexo-butterfly主题初始化

通过 git submodule 来同步第三方主题

​ 一般在选择第三方主题的仓库直接git clone,但实际场景下很有可能在原来主题基础上做一些自定义的小改动,为了保持多终端的同步,需要将这些改动提交到远程仓库,而第三方仓库是无法直接push的。因此如果需要对第三方仓库做相应的扩展则fork该第三方主题仓库(在自己账号下生成一个同名的仓库),随后git clone自己账号下的仓库url,从而可对主题进行自定义魔改

​ 但基于这种场景则会出现git仓库的嵌套问题(Git 仓库嵌套使用后,被嵌套的 Git 仓库不能被外层 Git 仓库检测到,即被嵌套的git仓库的修改无法被外层仓库感知),可通过git submodule来解决问题

初始化步骤说明:

​ fork指定仓库路径:进入指定仓库,点击Fork按钮,稍等片刻便可在本地仓库看到对应同名主题仓库生成(如果需自定义则可通过指令方式实现)

​ 取消原有主题项目引用,先git clone自身fork的主题仓库,随后通过git submodule方式导入自己的自定义主题仓库从而解决git仓库嵌套问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 普通方式fork项目
# 1.clone项目到本地指定路径(有master、dev分支,此处选择较新的dev分支)
git clone -b dev git@github.com:username/hexo-theme-butterfly.git themes/butterfly

# 2.本地新增dev-custom分支用于自定义魔改
git remote # 进入themes/butterfly目录,查看远程仓库(有origin、upstream)
git branch dev-custom # 创建dev-custom自定义魔改分支
git push origin dev-custom # 将新分支推送到指定的远程仓库(此处origin为远程仓库名称)

# 3.切换到新增的dev-custom分支,随后将其与远程仓库构建关联
git branch -a # 查看所有分支 git branch(不带参数标识查看当前分支,其中结果中标*的标识当前使用的分支)
git checkout dev-custom # 切换本地分支dev-custom
git branch --set-upstream-to=origin/dev-custom # 将当前分支代码与远程仓库新分支进行关联

# 4.添加文件,推送远程仓库
git add -A #提交到暂存区
git commit -m 'XXXXXXX' # 提交到本地分支
git push origin dev-custom # 推送到远程仓库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# git管理hexo项目

# 1.构建git仓库存储hexo项目(此处直接在hexo项目中创建新仓库用于存储blog源文件信息)
# a.使用github desktop:用小乌龟初始化git项目,随后通过github desktop发布仓库进行操作即可

# b.使用git指令:先在github上创建远程仓库,随后本地初始化仓库信息与远程仓库进行关联
# 先在github上创建远程仓库wv-blog-source
cd wv-blog-source
git init # 初始化仓库(初始化完成,生成.git文件夹)
git add -A # 添加所有文件到暂存区
git commit -m "descr"# 提交
git remote add origin 远程仓库地址 # 将本地创建的仓库推送到远程github仓库(远程仓库地址对应刚在github新建的远程仓库)
git push -u origin master # 新建仓库第一次推送指令执行
# 上述指令执行完成,则可检查github对应仓库信息是否推送成功

# 2.使用git submodule解决仓库嵌套问题
git submodule add git@github.com:username/hexo-theme-butterfly.git themes/butterfly
# 上述指令构建完成,则可在外层git项目中生成.gitmodules文件,随后父工程则可感知子工程的文件变动