OK. Also dachte ich ich hätte das geleckt ... aber jetzt ....
Ich habe ein Projekt, das eine kleine Bibliothek von GitHub als Submodul enthält. In der Originalversion dieses Superprojekts funktioniert das Submodul wie erwartet.
Ich habe jedoch gerade das Superprojekt geklont und getan, was ich dachte: "git submodule init", habe das Verzeichnis des Submoduls angezeigt, aber es ist leer.
Wenn ich es jetzt versuche
git submodule update
Ich bekomme
fatal: Needed a single revision
Unable to find current revision in submodule path 'external_libraries/BEACHhtml'
Wenn ich es versuche
git submodule foreach git pull
Ich bekomme
Entering 'external_libraries/BEACHhtml'
fatal: Where do you want to fetch from today?
Stopping at 'external_libraries/BEACHhtml'; script returned non-zero status.
In meiner .git / config habe ich Folgendes:
[submodule "external_libraries/BEACHhtml"]
url = [email protected]:interstar/BEACHhtml.git
In meinen .gitmodules habe ich Folgendes:
[submodule "external_libraries/BEACHhtml"]
path = external_libraries/BEACHhtml
url = [email protected]:interstar/BEACHhtml.git
Hat jemand eine Idee, was fehlt?
quelle
ext/blah
) als auch den passenden Ordner unterGIT_DIR
(.git/modules/ext/blah
) entfernen .git submodule update
mein CI-Server immer wieder fehl, weil er wollte, dass jemand die RSA-Schlüssel akzeptiert (der CI-Server verwendet normalerweise eine https-Verbindung und dies war das erste Mal, dass ein Submodul eine SSH-Verbindung herstellte). Hoffe, es erspart jemandem eine Stunde Kopfkratzen!Ich hatte dieses Problem (flockiges Netzwerk, so dass ich das Auschecken von Submodulen wie folgt fallen ließ) und löste es, indem ich dieses Skript erstellte (benannte es,
git-submodule-fix
damit ich es ausführen konntegit submodule-fix
).Wenn Sie dies dh von einem bekommen
git submodule update
machen
quelle
Gelöst durch Löschen von 2 Verzeichnissen und erneutes Abrufen des Submoduls:
external_libraries/BEACHhtml
und schauen Sie in die.git
Datei. Der Inhalt sollte so etwas wie seingitdir: ../../.git/modules/external_libraries/BEACHhtml
external_libraries/BEACHhtml
und.git/modules/external_libraries/BEACHhtml
Verzeichnisse.Läuft ab sofort
git submodule update
fehlerfrei.quelle
git submodule init
vorher ausführen,git submodule update
damit das Submodul neu initialisiert wird. Dann funktioniert dies.Wenn Sie 2019 oder später lesen, aktualisieren Sie einfach den Git-Client. Hat für mich gearbeitet.
quelle
Verwenden Sie ein Diff-Tool, um den funktionierenden Originalklon mit diesem zu vergleichen. Auch was gibt
git submodule
aus. Stellen Sie sicher, dass Sie in jedem Repo auf denselben Zweig zeigen, bevor Sie dies tun.Ich vermute, dass Sie zu einem Zweig oder einer älteren Version gewechselt haben, in der das Submodul nicht definiert wurde.
hoffe das hilft
quelle
Ich hatte das gleiche Problem mit einem Submodul in einem Projekt. Als ich versuchte, das Submodul separat zu klonen, funktionierte es gut.
Ich habe alle oben genannten Antworten ausprobiert, aber ohne Erfolg (Git-Submodul-Update, ..., Entfernen der Submodul-Ordner, ...).
Das Problem verschwand nach dem Update von Git (von Git-1.7.11-Preview20120710) auf die neueste Version (auf Git-1.8.1.2-Preview20130201) zu diesem Zeitpunkt. Seltsamerweise hatten meine Kollegen eine noch ältere Version, arbeiteten ohne Probleme, aber sie waren auf dem Mac. Ich bin auf Win7 64bit.
quelle