git如何处理将另一个存储库克隆到子目录中?

时间:2011-03-07 06:04:30

标签: git git-submodules subdirectory

我刚刚将一个存储库克隆到另一个存储库的子目录中,而git实际上似乎非常聪明地处理了这种情况。我知道子模块,但我认为它们总是必须明确定义,我不认为git有这个功能。发生了什么事?

这是我的shell会话:

https://gist.github.com/858131

2 个答案:

答案 0 :(得分:2)

第二个存储库由第一个存储库作为子模块处理。由于您尚未将其定义为子模块,因此您无法使用git submodule命令与其进行交互,但所有其他命令都将其视为子模块。

答案 1 :(得分:2)

它将其作为嵌套存储库处理,而不是作为子模块处理 如您所知,将其声明为子模块:

  • 子目录不应该已经存在,这意味着如果您已经克隆了第二个仓库,则需要先将其删除,然后再将其作为子模块添加。
  • 或者您可以尝试直接在.gitmodules文件(未测试)
  • 中添加

这将允许创建special entry in the git index referencing the submodule SHA1shown here,并在SO问题“Nested git repositories without submodules?”中详细说明。