gh pages - aispin/mamboer.github.io GitHub Wiki

将gh-pages添加为master分支的submodule

为了避免频繁地切换gh-pages分支和master分支,可以将gh-pages分支添加为master分支的子模块。

  1. 创建一个独立(orphan)的gh-pages分支

    在master分支下,保证修改已经被提交,运行下面脚本:

    git checkout --orphan gh-pages
    

    这时候会将master分支切换至gh-pages分支,同时原master分支的内容也保留在里面

  2. 在1签出的gh-pages分支下,删除不想放在gh-pages下的内容

    源码什么的不适合放gh-pages下的文件统统删掉

  3. 提交剩下的文件至gh-pages分支并推送至github服务器

    git add -A
    git commit -a -m "init gh-pages"
    git push --set-upstream origin gh-pages
    
  4. 切换回master分支,创建submodule site指向gh-pages分支

    git checkout master
    git submodule add -b gh-pages [email protected]:mamboer/motify.git site
    

    你可以将子模块名site换成你喜欢的名字,例如publishpages之类的

  5. 如果出现A git directory for 'site' is found locally with remote(s)的提示

    请参考以下删除子模块的方法将site模块删除掉,然后重做4

至此,正常的话你已成功将gh-pages分支添加为master分支的site子模块,两个目录包含各自内容,方便切换维护。

如何删除一个子模块submodule

有时候可能会有删除submodule的场景,可以运行以下命令:

rm -rf .git/modules/path_to_submodule