GitHub中的子模块无法点击

5

我正在使用Github,并且我的repo中有子模块。然而,我希望能够在Github上点击子模块以打开子模块的repo页面。这是我的.gitmodules文件。

[submodule "submodule1"]
        path = submodule1
        url = https://github.com/octocat/Hello-World
[submodule "submodule2"]
        path = submodule2
        url = https://github.com/octocat/hello-worId
[submodule "submodule3"]
        path = submodule3
        url = https://github.com/octocat/hello-worId

GitHub子模块

有没有什么方法可以使GitHub上的子模块可点击呢?


你的 .gitmodules 文件中是否包含 BOM? - user4003407
谢谢回复。从未听说过BOM。我在.gitmodules上没有它(.gitmodules代码在上面)。正在弄清楚BOM是什么。这是我链接存储库所需的东西吗? - user3339128
你确定你的.gitmodules文件中没有BOM(字节顺序标记)吗?为了被GitHub识别,你的.gitmodules文件必须没有BOM。 - user4003407
感谢您的回复。我在github上编辑文件时没有看到任何额外的字符。.gitmodules看起来与我分享的一样,甚至在github上也是如此。顺便说一下,当我克隆“父”存储库并执行“git submodule init”和“git submodule update”时,它可以正常工作。它会克隆所有内容。但是,在github上链接失效是个问题。 - user3339128
谢谢回复。我尝试了“file .gitmodules”,得到的是“.gitmodules: ASCII text”。所以我的.gitmodules文件肯定没有BOM。还有其他原因导致github链接子模块无法工作吗? - user3339128
显示剩余3条评论
4个回答

5

GitHub Enterprise不会像GitHub.com一样链接未位于同一设备上的子模块,因此从GitHub Enterprise到GitHub.com的链接无法正常工作。感谢您的所有帮助。


1
另一种情况是当子模块的URL为相对路径时,它们不可点击(这不是OP中的情况)。
2021年3月,这已不再是问题:

支持使用相对路径的子模块超链接

使用相对路径定义的子模块现在可以在Web UI中点击,方便导航到链接的存储库。以前,只有绝对URL的子模块可点击。

仅支持遵循格式 ../{repo}(具有相同所有者的存储库)或 ../{owner}/{repo}(具有不同所有者的存储库)的相对路径。

要了解有关子模块的更多信息,请参阅GitHub博客上的使用子模块


1

另一个问题的原因可能是目录分隔符:
如果您在Windows下添加子模块,则会在.gitmodules中得到一个条目,如下所示:

[submodule "Source\\External\\Library"]
    path = Source\\External\\Library
    url = https://github.com/Username/Library.git

但是为了让GitHub识别子模块,你需要将其更改为以下内容:

[submodule "Source\\External\\Library"]
    path = Source/External/Library
    url = https://github.com/Username/Library.git

注意不要更改第一行,否则该条目将突然指向另一个(不存在的)子模块


虽然这不是 OP 的问题,但如果您在 Windows 下添加了子模块,则这是一个有效的解决方案。 因此,在 Windows 上执行 git submodule add 后,编辑 .gitmodules 文件并将路径 = 行中的路径分隔符更改为 Linux 标准的 / 。 - bvanlew

0

我可能有点晚了,但想再添加一个可能的原因。

我也遇到了同样的问题。在我的情况下,我使用了SSH URL:

git@github.com:<user-name>/<repo-name>.git

这导致在.gitmodules文件中使用相同的URL:

[submodule "Project6"]
    path = Project6
    url = git@github.com:<user-name>/<repo-name>.git

在 .gitmodules 文件中将 URL 更改为以下内容后

url = https://github.com/<user-name>/<repo-name>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接