Unter rajibchowdhury 's Antwort (hochgestimmt), verwenden. git rm
Der empfohlene Befehl dient zum Entfernen der Sondereintrag im Index, der ein Untermodul angibt (ein 'Ordner' mit einem speziellen Modus 160000
).
Wenn dieser besondere Eintrag Pfad wird nicht in der .gitmodule
(wie ' Classes/Support/Three20
' in der ursprünglichen Frage), dann müssen Sie es entfernen, um die " Keine Submodul-Zuordnung gefunden in .gitmodules
für Pfad " Fehlermeldung.
Sie können alle Einträge im Index überprüfen, die auf Untermodule verweisen:
git ls-files --stage | grep 160000
Vorherige Antwort (November 2010)
Es ist möglich, dass Sie Ihr anfängliches Submodul nicht korrekt deklariert haben (d. h. ohne ein '/' am Ende, wie in meine alte Antwort auch wenn Ihr .gitmodule
hat Pfade, die darin gut aussehen).
Dieses Thema Erwähnungen:
Erhalten Sie denselben Fehler, wenn Sie "git submodule init" von einem neuen Klon aus ausführen?
Wenn ja, haben Sie etwas falsch gemacht.
Wenn Sie keine Untermodule haben, löschen Sie .gitmodules
und alle Referenzen .git/config, und stellen Sie sicher, dass das Pikimal-Verzeichnis nicht mit einem .git
du darin.
Wenn das Problem damit behoben ist, melden Sie sich und machen Sie das Gleiche mit Ihrer Arbeitskopie für die Kreuzfahrt.
Löschen Sie natürlich nicht Ihre Haupt .gitmodules
Datei, sondern kümmern sich um andere zusätzliche .gitmodules
Dateien in Ihrem Arbeitsbaum.
Immer noch beim Thema "fehlerhafte Initialisierung von Submodulen", Jefromi erwähnt Untermodule, die eigentlich Gitlinks sind.
Véase Wie kann man nicht verfolgte Inhalte verfolgen? um ein solches Verzeichnis in ein echtes Submodul umzuwandeln.