我有一個存儲庫,它有兩個子模塊。當我運行git submodule init
或git submodule update
Git的抱怨,並出現以下錯誤:Git索引掛在舊子模塊路徑上?
fatal: no submodule mapping found in .gitmodules for path 'AppName.xcodeproj/..Vendor/AFNetworking'
我的子模塊並不都是在同一個目錄,我決定清理項目。我曾經有一個名爲Vendor
的目錄,其中包含我的一些子模塊,但我按照指示here從git中刪除子模塊。然後,我將這些子模塊重新添加到名爲submodules
的新目錄中。
我的一個子模塊是AFNetworking
庫,我在最初的供應商目錄中添加了它作爲子模塊。我前一段時間刪除了它,並重新添加它作爲清理過程的一部分。該應用程序似乎構建得很好,我的git submodule
命令工作正常。現在,當我在不同的機器上檢查時,它會按照上述說明失敗。
我.gitmodules
文件看起來像這樣:
[submodule "submodules/AFNetworking"]
path = submodules/AFNetworking
url = https://github.com/AFNetworking/AFNetworking.git
[submodule "submodules/LNPopupController"]
path = submodules/LNPopupController
url = https://github.com/MosheBerman/LNPopupController.git
這似乎是正常的,因爲git的知道在哪裏我的模塊,並且所有應該很好。這同樣是我.git/config
文件的真實:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = [email protected]:MosheBerman/theshmuz.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[submodule "submodules/AFNetworking"]
url = https://github.com/AFNetworking/AFNetworking.git
的錯誤是微妙,過了好一會兒,我意識到這一點,但我注意到,該錯誤消息引用老Vendor
目錄,不再存在。
我打開./git/index
,將cat的輸出導入文本文件並使用文本編輯器。果然,AppName.xcodeproj/../Vendor/AFNetworking/
出現在索引中。這可能是一個糟糕的gitlink?我該如何清理這個問題,這樣我才能正常初始化和構建我的回購?