git出错:“已存在,并且不是有效的git存储库”

busg9geu  于 2022-11-20  发布在  Git
关注(0)|答案(4)|浏览(400)

我不能这样做,这是显而易见的:

git submodule add -f git@github.com:thephpleague/oauth2-server.git libs/OAuth/functions

正因为如此:

  • 'libs/OAuth/functions'已存在,并且不是有效的git存储库*

我只是不明白。它不存在任何地方。是不是有另一个git配置文件隐藏在我的电脑上,我不知道或什么?我尝试删除**.gitpull**一切都没有做任何事情。任何想法?
我也试过这个:

git ls-files --stage functions

当我在libs/OAuth里面的时候,我什么都没有得到。
然后我试了这个:

sudo git rm --cached functions

我得到这个错误:

fatal: pathspec 'functions' did not match any files

我也试过这个:

sudo git rm -r --cached functions

并且得到了与之前相同的错误。

yi0zb3m4

yi0zb3m41#

万一别人有一个类似的情况下,我和我一样,是挣扎与此,因为一个愚蠢的原因:
检查文件是否因为任何原因不存在(我之前添加git子模块失败)
因此,在问题rm文件的上下文中:

rm -rf libs/OAuth/functions

然后尝试重新添加

du7egjpx

du7egjpx2#

即使文件夹不存在,也要检查索引状态:

cd libs/OAuth
git ls-files -- functions

如果在索引中注册了一个条目,那么在将子存储库添加为子模块之前,您需要将其删除。
(as在“Issue with adding common code as git submodule: “already exists in the index”“中解释)
所有这些都假定您位于当前克隆的存储库的根文件夹中,该存储库将充当您要声明的任何子模块的父存储库。

0x6upsns

0x6upsns3#

如果多次尝试添加子模块均失败,则在尝试正确添加时可能会出错。

首先,确保您要添加子模块的目录不存在。
其次,检查您的.git目录。我在.git/modules/中有多个目录导致了问题。

删除这些之后,我可以将子模块添加到指定的目录中。

0yg35tkg

0yg35tkg4#

当我想将子模块的位置从X更改为Y时,通常会发生此错误
所以我做的是:
1.使用所需的新路径手动编辑项目的.gitmodules
1.使用rm -rf手动删除目录
1.运行以下命令:

git submodule update

然后重新读取配置并同步新目录
如果您只想完全删除子模块,则需要删除.git/config中的子模块块

相关问题