一个非常好的技巧如图所示在子模块中生成 GitHub 页面 http://blog.blindgaenger.net/generate_github_pages_in_a_submodule.html by
盲人盖恩格 (Bernd Jünger) http://blindgaenger.net/是声明一个branch作为子模块another branch!
所以如果你的public
内容位于其自己的孤儿分支中(例如gh-pages
内容通常保存在自己的孤立分支中),那么您可以:
- declare
public
作为主存储库的子模块master
branch
- 声明与主存储库的子模块相同的公共
gh-pages
所以你在子模块中所做的任何修改public
当你在master
分支可以更新(git submodule update
)一旦你切换到gh-pages
branch!
我并不是说这是您当前设置的解决方案,因为它涉及删除public
从您的主要内容中删除,并将其添加回自己的分支中(即其他解决方案可能更简单),但这是共享公共目录的一种有趣的方式:
cd yourRepo
git symbolic-ref HEAD refs/heads/public
rm .git/index
mv public ..
git clean -fdx
mv ../public/* .
git add .
git commit -m "public content in orphan branch public"
git push origin public
但是一旦你创建了一个孤立分支来包含它(public
) 内容,将该分支内容添加为其他分支的子模块的技巧是:
$ git checkout master
$ git submodule add -b public [email protected] /cdn-cgi/l/email-protection:user/repo.git public
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: .gitmodules
# new file: public
#
$ git commit -m "added public as submodule"
$ git push
您可以为您的产品重复该步骤gh-pages
branch.
这将创建一个目录“public
“,结账时出示两者master
or gh-pages
.
在这两种情况下(均结帐),git submodule update
将足以获取最新的进展public
子模块。
和往常一样,当涉及到子模块时,一旦你做了修改public
目录,请确保您位于其“public
' 分支、提交并推送,然后返回上一级目录,再次添加提交。
2016 年 8 月更新:更简单的 GitHub Pages 发布 https://github.com/blog/2228-simpler-github-pages-publishing现在允许将页面文件保存在same分支(没有了gh-pages
需要):
因此,不再需要子模块技巧来使两种类型的内容通过同一分支可见。