去掉部分子模块状态



我有一个目录树,其中包含一个git存储库(我当时没有想到)。然后在父亲2 dirs,我做了一个git init,并试图添加所有的树。它没有在已经有.git目录的子目录中添加文件,但我仍然没有注意到这一点,只是添加了这个目录。(我不确定我到底打了什么,但当时我觉得一切都完成了,尽管我仍然有点好奇,为什么顶部的添加没有添加所有内容;但后来我打消了这个念头

现在我注意到克隆外部存储库不会检出内部存储库中的文件。经过一番调查,我发现内部存储库似乎是外部存储库的一个子模块,但不知何故不是一个合适的子模块。

git submodulegit statusgit log这样的东西从来没有提到内部存储库,但试图将文件从内部存储库添加到外部存储库总是状态:fatal: Path 'path/to/innerRepository/somefile' is in submodule 'path/to/innerRepository',即使我删除了内部.git目录。

我现在想要实现的是摆脱内部存储库的目录(及其所有内容)是另一个存储库的一部分的信息。我想忘掉旧的存储库,把文件签入新的存储库。

我该怎么做呢?

删除内部的。git文件夹并不足以让上级repo相信某个路径不是子模块。

path/to/innerRepository可能在父repo的索引中记录为特殊条目(模式为160000)

git submodule deinit path/to/innerRepository

(它应该失败,如果你没有。gitmodules)

:

git rm --cached path/to/innerRepository  # no trailing slash

最后一个命令应该让你的父repo"忘记"这个子模块。

最新更新