我有一个目录树,其中包含一个git存储库(当时我没有想到)。然后在父亲两个dirs上我做了一个git init
并试图在树中添加所有内容。它没有在已经有.git
目录的子目录中添加文件,但我仍然没有注意到这一点,并且还添加了这个目录。 (我不确定我输入的是什么,但当时在我看来现在一切都已完成,但我仍然有点好奇为什么在顶部添加并没有添加所有内容;但我然后放弃了这个想法。)
现在我注意到克隆外部存储库不会检出内部存储库中的文件。经过一番调查后,我发现内部存储库似乎是外部的子模块,但不知道它是不合适的。
git submodule
或git status
或git log
等内容从未提及内部存储库,但尝试将内部存储库中的文件添加到外部存储库中时始终指出:fatal: Path 'path/to/innerRepository/somefile' is in submodule 'path/to/innerRepository'
,甚至如果我删除内部.git
目录。
我现在想要实现的是摆脱内部存储库的目录(及其所有内容)是另一个存储库的一部分的信息。我想忘记旧存储库并将文件检入新存储库。
我该怎么做?
答案 0 :(得分:1)
删除内部.git文件夹不足以说服父回购某某路径不是子模块。
path/to/innerRepository
可能记录在父代表作为special entry (mode 160000)的索引中
尝试
git submodule deinit path/to/innerRepository
(如果你没有.gitmodules则会失败)
和
git rm --cached path/to/innerRepository # no trailing slash
最后一个命令应该让你的父回复“忘记”关于那个子模块。