it-swarm.com.de

"Sie befinden sich in einem Zweig, der noch nicht geboren ist", wenn Sie ein Git-Modul hinzufügen

Ich versuche, meinem .vim/bundles-Verzeichnis ein paar Submodule hinzuzufügen, und wenn ich versuche, dieses bestimmte Repo hinzuzufügen, gibt Git mir einen seltsamen Fehler, den ich noch nie gesehen habe:

$ git submodule add -f git://github.com/derekwyatt/vim-scala.git .vim/bundle/vim-scala
fatal: You are on a branch yet to be born
Unable to checkout submodule '.vim/bundle/vim-scala'

Irgendeine Idee, was kann das bewirken?

Wenn ich dasselbe Repo in ein Testverzeichnis kopiere (nicht über den Befehl submodule), funktioniert es einwandfrei und erstellt die erwarteten Dateien.

114
matt b

Um diesen Fehler zu beheben, sollten Sie den Ordner mit dem gleichen Pfad zu dem Untermodul im Verzeichnis .git/modules/ löschen. Dieser Fehler kann auftreten, wenn die URL zum ersten Mal beim Hinzufügen des Submoduls für das Submodul falsch war.

203
lisachenko

Sie müssen ein Submodul inside eines vorhandenen Repos hinzufügen. Dieses Repo muss sich in einem Zustand befinden, in dem der Submodul-Link hinzugefügt und festgeschrieben werden kann. Und Das Submodul-Repo selbst muss ein Commit zur Überprüfung besitzen aus.

Nun muss das Repository für das Submodul selbst in Ordnung sein, wenn Sie an anderer Stelle einen regulären Klon erstellen können. Es sieht jedoch so aus, als würde submodule add sich beschweren, wenn das Repo leer ist, während Klon dies nicht tut. Dieser Typ weist darauf hin, dass dies behoben werden kann, indem derselbe submodule add-Befehl erneut ausgeführt wird.

Wenn das innere Repo nicht leer ist, markieren Sie das Repo, das Sie enthalten das Untermodul möchten. Wechseln Sie in dasselbe Verzeichnis, in dem Sie git submodule add ausgeführt haben, und führen Sie git status und git branch aus, um zu überprüfen, ob für das enthaltende Repo mindestens ein Zweig erstellt wurde und sich nicht in einem seltsamen Zustand befindet.

12
Useless

Dieser Fehler kann auftreten, wenn Sie ein Submodul hinzufügen, das keine master-Verzweigung hat. Wenn Sie beim Hinzufügen des Submoduls (zum Beispiel develop) einen anderen Zweig verwenden möchten, können Sie den folgenden Befehl verwenden:

git submodule add -b <branch> <repository>
11
k4nar

Wie von @ drew-noakes angedeutet, kann dies durch den Versuch verursacht werden, ein Submodul mit einem Verzeichnisnamen hinzuzufügen, der in Ihrer Datei .gitignore aufgeführt ist.

0
John McFarlane