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"
您好,我有一个现有的签入目录,其中包含很多常用代码。
我将代码移至外部存储库,然后尝试将其用作子模块。
现在的问题是,当我尝试添加子模块时,抛出一个错误:已经存在。我尝试了多个论坛,但找不到任何解决方案。
我已经从存储库中删除了原始目录,然后签入了更改(删除目录)。还是这个问题。一些它说该目录存在于索引中的方式。
如何处理?
从 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"