我不能这样做,这是显而易见的:
git submodule add -f git@github.com:thephpleague/oauth2-server.git libs/OAuth/functions
正因为如此:
- 'libs/OAuth/functions'已存在,并且不是有效的git存储库*
我只是不明白。它不存在任何地方。是不是有另一个git配置文件隐藏在我的电脑上,我不知道或什么?我尝试删除**.git和pull**一切都没有做任何事情。任何想法?
我也试过这个:
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
并且得到了与之前相同的错误。
4条答案
按热度按时间yi0zb3m41#
万一别人有一个类似的情况下,我和我一样,是挣扎与此,因为一个愚蠢的原因:
检查文件是否因为任何原因不存在(我之前添加git子模块失败)
因此,在问题rm文件的上下文中:
然后尝试重新添加
du7egjpx2#
即使文件夹不存在,也要检查索引状态:
如果在索引中注册了一个条目,那么在将子存储库添加为子模块之前,您需要将其删除。
(as在“Issue with adding common code as git submodule: “already exists in the index”“中解释)
所有这些都假定您位于当前克隆的存储库的根文件夹中,该存储库将充当您要声明的任何子模块的父存储库。
0x6upsns3#
如果多次尝试添加子模块均失败,则在尝试正确添加时可能会出错。
首先,确保您要添加子模块的目录不存在。
其次,检查您的.git目录。我在.git/modules/中有多个目录导致了问题。
删除这些之后,我可以将子模块添加到指定的目录中。
0yg35tkg4#
当我想将子模块的位置从X更改为Y时,通常会发生此错误
所以我做的是:
1.使用所需的新路径手动编辑项目的
.gitmodules
1.使用
rm -rf
手动删除目录1.运行以下命令:
然后重新读取配置并同步新目录
如果您只想完全删除子模块,则需要删除
.git/config
中的子模块块