我已经将Xcode项目添加到git repo中。当我运行以下命令时:
$ git submodule init
我得到以下错误:
fatal: No url found for submodule path 'Pods' in .gitmodules
我没有添加'Pods'子模块,它是自己添加的?
v1uwarro1#
不知道为什么Pods在您的.gitmodules中列出。This article提到当存储库使用从另一个存储库克隆的文件,但没有对为其创建的源存储库的Map引用时,会发生这种情况。需要将Map添加到您正在使用的存储库的根目录中的.gitmodules文件中。但在您的示例中,请编辑.gitmodules文件并删除Pods条目。然后检查索引中是否有Pods条目:
.gitmodules
Pods
git rm --cached -- Pods
这将删除**gitlink**,SHA1 recorded作为special entry in the index。这将足以消除子模块的痕迹。
1mrurvl12#
对于具有相同错误消息的更一般的问题,给出了稍微更技术性的答案。一个git子模块包括:1.已提交的commit,存储在git索引中的特定路径中(当您以described here的形式运行git ls-tree HEAD时,您可以将其视为commit对象)
commit
git ls-tree HEAD
.git/config
2条答案
按热度按时间v1uwarro1#
不知道为什么Pods在您的
.gitmodules
中列出。This article提到当存储库使用从另一个存储库克隆的文件,但没有对为其创建的源存储库的Map引用时,会发生这种情况。
需要将Map添加到您正在使用的存储库的根目录中的
.gitmodules
文件中。但在您的示例中,请编辑
.gitmodules
文件并删除Pods
条目。然后检查索引中是否有
Pods
条目:这将删除**gitlink**,SHA1 recorded作为special entry in the index。
这将足以消除子模块的痕迹。
1mrurvl12#
对于具有相同错误消息的更一般的问题,给出了稍微更技术性的答案。
一个git子模块包括:
1.已提交的
commit
,存储在git索引中的特定路径中(当您以described here的形式运行git ls-tree HEAD
时,您可以将其视为commit
对象).gitmodules
(已提交)文件中此路径的条目,包含从中获取此提交的url。.git/config
中的一个条目(未提交),用于跟踪实际 checkout 和更改的内容。不用说,这有点令人困惑,我怀疑如果他们选择不保持提交,世界会更简单
这个错误意味着有一个提交在
.gitmodules
中没有对应的条目,修复方法是删除提交对象或将条目添加到.gitmodules
。