我不能这样做:
git submodule add -f git@github.com:thephpleague/oauth2-server.git libs/OAuth/functions
因此:
'libs / OAuth / functions'已经存在,并且不是有效的 git repo
我只是不明白。它不存在于任何地方。我的计算机上是否隐藏了另一个 git配置文件,我不知道或者其他什么?我尝试再次删除 .git 和拉所有内容。有什么想法吗?
我也试过这个:
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
并得到了同样的错误。
答案 0 :(得分:7)
如果其他人有类似我的情况,并因为一个愚蠢的原因正在努力解决这个问题:
检查文件是否因为任何原因已经存在(我之前添加了一个失败的git子模型)
所以在rm文件的上下文中:
rm -rf libs/OAuth/functions
然后尝试重新添加
答案 1 :(得分:2)
即使文件夹不存在,也请检查索引状态:
cd libs/OAuth
git ls-files -- functions
如果在索引中注册了一个条目,则需要将其删除才能将子视图作为子模块添加。
(如“Issue with adding common code as git submodule: “already exists in the index””中所述)
所有这些都假设您位于当前克隆的仓库的根文件夹中,该仓库将充当您要声明的任何子模块的父仓库。
答案 2 :(得分:0)
如果您多次尝试添加子模块而失败,则在尝试正确添加子模块时可能会导致错误。
首先,确保您要添加子模块的目录没有退出。
其次,检查您的.git目录。
我在.git / modules /中留下了多个导致问题的目录。
删除这些内容后,我能够将子模块添加到指定的目录中,如已扩展。