Git 子模块在 TFS 中未显示为父文件夹

Git submodules are not shown as folder in parent in TFS

我有一个 Git 存储库,其中包含 TFS 中的另一个存储库 submodule。使用此命令添加子模块:

git submodule add https://myurl/base base

当我克隆父存储库时,我的本地副本工作正常。我可以看到子模块并可以访问它。

但在 TFS 2015 中,我的子模块无法从父模块访问。如果我单击 base(应该是一个文件夹或 link 到子模块)我只看到一个校验和,它看起来像这样:

我错过了什么?或者这是 TFS 的问题?

子模块的内容未存储在 "parent" 存储库 [1] 中。 TFS 不遵循子模块 link 来获取内容。您可以说这是 TFS(以及 AFAIK 任何 git 托管软件)的限制,但在我看来这并不是一个意外的限制 [2]。我从来没有仔细观察过以确保确定,但我假设它显示的散列是提交散列,您可以在其中找到子模块存储库中排除的内容。


[1] :在您的工作树本地,看起来几乎所有东西都在您的存储库中 - 因为这是通过让您的工作树跨越多个存储库而创建的错觉子模块。但是父 repo 数据库——发送到 TFS 之类的远程的部分——只包含对另一个 repo 的引用。

[2] :一般来说,甚至不能假设远程可以访问可能被列为子模块的任意 "other repo"。