如何将子模块添加到gh-pages分支&正确构建静态页面?

时间:2012-08-05 14:45:44

标签: git jekyll git-submodules github-api github-pages

我有几个要维护的项目页面,并且它们都使用相同的主题(我将它打包成一个名为KYProjectPageTheme的独立仓库。)

只需将KYProjectPageTheme的整个文件夹复制到gh-pages分支的根目录&然后把它推到Github非常好。当静态页面成功构建时,我会收到通知。

但是,我想在KYProjectPageTheme分支下添加gh-pages作为子模块。这在我的本地机器上运行良好。但当我把它推到Github时,我再也收不到通知了!并且静态页面仍处于先前状态,即在我添加子模块后的修改不会影响。

我猜想当gh-pages分支中存在子模块时,Github的静态页面生成器将无法工作。但实际上,我不需要生成器来生成静态页面,我只需要修改HTML和HTML中的页面。将其推送到gh-pages。为什么我的index.html没有更新?

有什么想法吗?是否有一些解决此问题的解决方法?

提前致谢!

3 个答案:

答案 0 :(得分:21)

我得到了Github的答案(感谢@Robert)。

  

Using submodules with Pages

     

如果您的存储库包含子模块,则在构建页面时会自动将其拉入。

     

确保为子模块使用https://只读URL,包括嵌套子模块。您可以在.gitmodules文件中进行此更改。

     

子模块也必须从公共存储库提供,因为Pages服务器无法访问私有存储库。

所以,我需要使用

https://github.com/Kjuly/KYProjectPageTheme.git (new page recommends to use "https://")
git://github.com/Kjuly/KYProjectPageTheme.git (old page recommends to use "git://")

而不是

git@github.com:Kjuly/KYProjectPageTheme.git

现在它完美无缺!!


注意,旧页面说:

  

HTTPS和SSH URL会导致构建失败并显示“子模块提取失败”错误。

现在不确定HTTPS是否有效,但如果https://不适合您,请继续使用git://

答案 1 :(得分:0)

当我使用SSH作为主存储库并使用HTTPS作为我的子存储库(原型框架)时,我经常遇到这种情况。

我从未理解为什么会发生这种情况。我甚至曾经联系过GitHub的工作人员,他们必须在我的存储库中修改一些东西。

事实证明,有一种更简单的方法:对父存储库和所有子存储库使用HTTPS。这似乎无需任何其他调整即可。

答案 2 :(得分:0)

我正在使用Hugo生成一个静态网站,并且必须格式化我的.gitmodules文件:

[submodule "themes/code-editor"]
    path = themes/code-editor
    url = https://github.com/aubm/hugo-code-editor-theme.git