比木白-Git

Git

子模块

原因

昨天在配置我们这个博客项目系统的时候,配置主题时,发现主题大多数都是从外部的github项目里面clone到本地的themes目录下的,导致我上传到远程github时,没办法做到将外部的github项目一起推上去,而此系统固定的主题又想一键生成,不需要团队成员自己麻烦的手动配置。
于是经过和同事的讨论(这里感谢我的同事——鹏辉[小灰灰]),通过git子模块的形式,做到了一键hexo主题生成的方案。

详情

首先将外部github hexo主题项目fork到自己的账号下,然后拉取自己账号下的项目,配置好主题的一些属性以及方法,push到远程,这样一个配置好的hexo主题项目就完成了。

接着使用git submodule add @git/… themes/next将自己账号下刚刚fork的项目放到hexo主题目录下,这时候就会生成一个.gitmodules文件与子模块建立关系。

最后编写bash文件,形成一个命令,这里我在package.json里面写一句命令语,也就是yarn run themes 或者 npm run themes,下面是bash文件的详情:

1
2
3
#! bin/bash
git submodule init
git submodule update

拉取并生成主题

完成之后,开发者就可以直接从远程git clone @git/…拉取项目,之后输入命令yarn run themes 或者 npm run themes,就可一键生成固定的主题啦!