12

我有几个项目页面要维护,它们都使用相同的主题(我将它打包到一个名为 的单独 repo 中KYProjectPageTheme)。

只需将KYProjectPageTheme's 的整个文件夹复制到gh-pages分支的根目录,然后将其推送到 Github 就可以很好地工作。当静态页面构建成功时,我会收到通知。

但是,我想添加KYProjectPageThemegh-pages分支下的子模块。这在我的本地机器上运行良好。但是当我将它推送到 Github 时,我再也收不到通知了!并且静态页面仍然是以前的状态,即我添加子模块后的修改没有影响。

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

任何的想法?是否有一些解决方法可以解决此问题?

提前致谢!

4

3 回答 3

21

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

将子模块与页面一起使用

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

确保对子模块(包括嵌套子模块)使用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://

于 2012-12-03T09:42:02.663 回答
0

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

我从来没有追查过为什么会发生这种情况。我什至联系过 GitHub 的工作人员,他们不得不在我的存储库中修复一些东西。

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

于 2016-04-07T12:03:46.927 回答
0

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

[submodule "themes/code-editor"]
    path = themes/code-editor
    url = https://github.com/aubm/hugo-code-editor-theme.git
于 2017-02-25T03:36:01.537 回答