GIT: <Directory> 已存在于索引中

GIT: <Directory> already exists in the index

您好,我有一个现有的签入目录,其中包含很多常用代码。

我将代码移至外部存储库,然后尝试将其用作子模块。

现在的问题是,当我尝试添加子模块时,抛出一个错误:已经存在。我尝试了多个论坛,但找不到任何解决方案。

我已经从存储库中删除了原始目录,然后签入了更改(删除目录)。还是这个问题。一些它说该目录存在于索引中的方式。

如何处理?

从 git 中删除目录或文件时,您必须明确指示 git 您正在删除它,否则 git 会在内部继续跟踪它。您可以使用

  • git rm -r --cached directory
  • git commit -m "removing directory"

使用-r因为它是一个目录所以我们需要递归删除,--cached用于保持本地副本完整(否则会被删除)

现在,在您的例子中,您已经从目录中移动并创建了一个子模块。所以,你需要

  • 再次将目录移出(因为它现在本身就是一个 git 存储库)

    mv directory ../
    
  • 删除目录并提交

    git rm -r --cached directory && git commit -m "removing directory"