Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的子模块没有从“.gitmodules”中删除?_Git - Fatal编程技术网

为什么我的子模块没有从“.gitmodules”中删除?

为什么我的子模块没有从“.gitmodules”中删除?,git,Git,我已使用以下答案中的命令从Git存储库中删除了现有子模块: 尽管子模块已被删除,但目录已不存在,并且更改已提交,但子模块仍与删除之前一样显示在.gitmodules中。奇怪的是,Git似乎并不介意它们列在那里,假装它们没有。git状态告诉我一切正常,即使运行git submodule init也不会重新添加已删除但仍在其中列出的子模块 有人能解释一下为什么我删除的子模块仍然显示在.gitmodules中吗?.gitmodules文件在Git内部工作流中的意义和作用是什么?与此相关的是,现在我不再

我已使用以下答案中的命令从Git存储库中删除了现有子模块:

尽管子模块已被删除,但目录已不存在,并且更改已提交,但子模块仍与删除之前一样显示在.gitmodules中。奇怪的是,Git似乎并不介意它们列在那里,假装它们没有。git状态告诉我一切正常,即使运行git submodule init也不会重新添加已删除但仍在其中列出的子模块

有人能解释一下为什么我删除的子模块仍然显示在.gitmodules中吗?.gitmodules文件在Git内部工作流中的意义和作用是什么?与此相关的是,现在我不再使用.gitmodules文件,删除它有什么害处吗

既然我不是,删除.gitmodules文件有什么害处吗 不用多久了

如果100%确定没有使用子模块,那么删除.gitmodules文件应该是100%安全的

但我想你经历的过程是这样的。假设您的子模块名为spiro_agnew:

然后,您可以删除连接到该子模块的文件,如下所示:

git rm -rf spiro_agnew
然后只需执行此操作即可完全摆脱.git模块:

git rm .gitmodules

没有回答你无情地删掉的第一个问题;“…子模块仍然像删除之前一样出现在.gitmodules中。”此时谁在乎它们是否出现在那里?只需执行git rm.gitmodules。这就是我编辑你的问题的原因。现在这不是问题,我想知道.gitmodules文件在Git内部工作流中的意义和作用。git是用它来跟踪配置文件之类的子模块,还是用它来帮助用户,就像一个防止用户弄乱git内部配置文件的阶段?如果其他人克隆了我的存储库怎么办;旧的.gitconfig文件的存在会对它们产生影响吗?@iqandre同样,我理解你的好奇心,但老实说,从我处理git子模块头痛问题的实际经验来看,最好摆脱它们,继续前进。不太确定旧的.gitconfig指的是什么。如果您完成了我概述的步骤,您将不得不执行git commit-a-m,这将消除子模块的所有迹象。我理解它们的预期用途,但我发现它们最终会遗憾地说——有时会成为回购协议中的癌症。最好继续前进。说真的,那是一个打字错误,我是说老了。相信我,我知道子模块带来的头痛;然而,一旦你学会正确使用它们,它们就会成为一种美丽的财富。
git rm .gitmodules