删除git子模块的存储库中的分支会使该分支中的提交对超级项目不可用吗?

时间:2010-07-12 10:07:24

标签: git git-submodules

我对git很新,我怀疑这个问题的答案是否定的,但我想在这里与一些经验丰富的git用户进行核实。

我有一个超级项目,它有一个提交,其中包含对子模块的开发分支的引用。我有点担心,当我将该开发分支重新绑定到master并删除它时,引用的子模块提交将消失,使得引用它的超级项目提交无法使用。


虽然我已经回答了这个问题,但它提出了另一个问题。可以指望这种行为吗?我已经读过git在refs中保留已删除的项目一段时间,然后删除它们。这可能导致克隆首先工作,然后失败吗?

1 个答案:

答案 0 :(得分:1)

由于我没有得到任何答案,我决定尝试一下。我创建了一个带有子模块的项目,并在子项目中使用三种不同的配置对超级项目进行了更改:

  1. 带引用的分支 commit被重新定位为master 没有任何变化和分支 删除。
  2. 带引用提交的分支被重新引导到master上,引用被压缩到另一个提交中。
  3. 的 带引用提交的分支 被删除了。
  4. 在所有这些情况下,用'git clone --recursive'克隆超级项目成功地添加了带有引用提交的子模块。