Ich versuche, ein paar Submodule zu meinem .vim/bundles
Verzeichnis hinzuzufügen , und wenn ich versuche, dieses spezielle Repo hinzuzufügen, gibt mir Git 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 das verursachen kann?
Wenn ich dasselbe Repo in ein Testverzeichnis klone (nicht über den Befehl submodule), funktioniert es einwandfrei und erstellt die erwarteten Dateien.
git
git-submodules
matt b
quelle
quelle
.vim/bundle/vim-scala
den zu löschenden Pfad geklont habe.git/modules/.vim/bundle/vim-scala
dir /AH
.git/modules/path/to/submodule
Verzeichnis gelöscht wurde und versucht wird, das Submodul erneut hinzuzufügen, wird die Fehlermeldung angezeigt. Der folgende Pfad wird von einer Ihrer Gitignore-Dateien ignoriert: Pfad / zu / Submodul .Sie müssen ein Submodul in ein vorhandenes Repo einfü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 zum Auschecken haben.
Jetzt muss das Submodul-Repo selbst in Ordnung sein, wenn Sie an anderer Stelle einen regulären Klon erstellen können. Es sieht jedoch so aus, als würde man sich
submodule add
beschweren, wenn das Repo leer ist, während der Klon dies nicht tut. Dieser Typ schlägt vor, dass dies behoben werden kann, indem derselbesubmodule add
Befehl erneut ausgeführt wird.Wenn das innere Repo nicht leer ist, überprüfen Sie das Repo, das das Submodul enthalten soll . Wechseln Sie in dasselbe Verzeichnis, in dem Sie
git submodule add
ausgeführt habengit status
, und stellen Siegit branch
sicher, dass in Ihrem enthaltenen Repo mindestens ein Zweig erstellt wurde und sich nicht in einem seltsamen Zustand befindet.quelle
master
Zweig. Das Repo, dem ich dieses als Submodul hinzufügen möchte, befindet sich in dermaster
Verzweigung, hat keine offensichtlichen Probleme (der Status gibt einige geänderte Dateien zurück, aber das ist alles), und das Seltsamste ist, dass ich diesem Repository problemlos andere Submodule hinzufügen kann .fatal
Warnung von meinem OP hinterlässt git ein leeres Verzeichnis bei.vim/bundle/vim-scala
. Ich habe auch festgestellt, dass, obwohl.gitmodules
es unberührt ist, einige Zeilen hinzugefügt wurden, die auf dieses Repo von github.com verweisen.git/config
, aber nach dem Entfernen dieser Zeilen wird immer noch dieselbefatal
Fehlermeldung angezeigt.This guy suggests this is fixable by just running the same submodule add command again.
. Ich habe dieses Problem bekämpft und versucht, eine vernünftige Antwort zu finden, und dies hat es schließlich behoben. Dies war für Git 1.8.0 unter MSYS beim Erstellen eines Submoduls aus BitBucket. Wenn Sie sich also in derselben Situation befinden, versuchen Sie dies zuerst.Dieser Fehler kann auftreten, wenn Sie ein Submodul hinzufügen, das keinen
master
Zweig hat. Wenn Sie beim Hinzufügen des Submoduls (develop
z. B.) einen anderen Zweig verwenden möchten , können Sie den folgenden Befehl verwenden:quelle
git submodule add -b master <repo.git> <folder>
halfmaster
Ihrer Lösungen, die für mich funktioniert haben.Wie von @ draw-noakes angedeutet, kann dies durch den Versuch verursacht werden, ein Submodul unter Verwendung eines Verzeichnisnamens hinzuzufügen, der in Ihrer .gitignore- Datei aufgeführt ist.
quelle