hexo目录及github管理

git submodule

看名字就知道是什么东西了,在一个repo中添加另一个repo为字模块的命令,具体参考官方文档
git submodule

主要用到下面几个命令

1
2
3
4
5
6
7
添加一个字模块
git submodule add <repo url>|<repo dir>

从git clone之后,需要对字模块进行初始化,
git submodule init
并且clone字模块的代码
git submodule update

blog 目录结构

1
2
3
blog						 #1
├── edolphin-ydf.github #2
├─public #3
  1. 1处存在一个repo, 用于存放整个由hexo init生成的目录
  2. 2处存在一个repo, 对应github pages对应的repo 用于厨房由hexo generate生成的静态页面
  3. 3处存在一个是由hexo generate 生成的文件的目录

其中,2作为1的子模块

由于涉及到两个repo,所以发布的时候,没有使用hexo的deploy命令, 而是一个简单的脚本实现

commit.sh

1
2
3
4
5
6
7
8
9
10
11
#进入到字模块提交
cd edolphin-ydf.github.io/
git add .
git commit -m "$1"
git push
cd ../ #返回到根目录

#提交根目录
git add .
git commit -m "$1"
git push

deploy.sh

1
2
3
hexo g  		#发布前生成最文件
cp -rf public/* edolphin-ydf.github.io/ #拷贝最新的文件到字模块中
./commit.sh "commit" #调用commit脚本,因为博客的提交都很随意,所以这里提交信息也就写死为commit了

关于字模块一点注意

通过git clone blog, git submodule init, git submodule update 之后,字模块所在的分支是一个单独的分支,
需要使用git checkout master切换到主分支或者其他用到的分支上去


分割线

update:2016.4.1
华丽丽的被自己打脸了,感觉跟自己用的submodule不熟有很大关系,导致git总是出错,于是修改文件目录结构,以及不再使用submodule

修改后目录结构

1
2
3
├──blog						 #1
├─public #3
├─edolphin-ydf.github #2

这里将edolhpin-ydf.github.io目录上提, 与blog目录同级,相应的脚本修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
commit.sh
@@ -1,8 +1,8 @@
-cd edolphin-ydf.github.io/
+cd ../edolphin-ydf.github.io/
git add .
git commit -m "$1"
git push
-cd ../
+cd ../edolphin-blog

git add .
git commit -m "$1"

deploy.sh
@@ -1,3 +1,3 @@
hexo g
-cp -rf public/* edolphin-ydf.github.io/
+cp -rf public/* ../edolphin-ydf.github.io/
./commit.sh "commit"

而之前提到的git submodule什么的全都用不到了,clone项目时,也只需要分别clone两个repo就好了
不过我感觉总有一天,我还会再来折腾submodule的!!!

文章目录
  1. 1. git submodule
  2. 2. blog 目录结构
  3. 3. 关于字模块一点注意
  4. 4. 分割线
    1. 4.0.1. 修改后目录结构
,