J'essaie d'ajouter quelques sous-modules à mon répertoire .vim/bundles
et, lorsque j'essaie d'ajouter ce référentiel particulier, Git me donne une erreur étrange que je n'ai jamais vue auparavant:
$ 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'
Une idée de ce qui peut causer ça?
Si je clone le même référentiel dans un répertoire de test (pas à l'aide de la commande submodule), cela fonctionne correctement et crée les fichiers attendus.
Pour corriger cette erreur, vous devez supprimer le dossier avec le même chemin d'accès au sous-module dans le répertoire .git/modules/
. Cette erreur peut se produire lorsque l'URL était incorrecte pour le sous-module pour la première fois lorsque le sous-module a été ajouté.
Vous devez ajouter un sous-module dans un référentiel existant, ce référentiel doit être dans un état permettant d'ajouter et de valider le lien de sous-module, et le référentiel de sous-module lui-même doit avoir une validation à extraire.
Maintenant, le repo de sous-module lui-même doit être correct si vous pouvez créer un clone normal ailleurs. Cependant, il semble que submodule add
se plaint si le référentiel est vide, contrairement au clone. Ce gars suggère que ceci est réparable en exécutant simplement la même commande submodule add
à nouveau.
Si le référentiel interne est pas vide, cochez le référentiel que vous souhaitez contenir le sous-module. Accédez au même répertoire que celui où vous avez exécuté git submodule add
et exécutez git status
et git branch
pour vérifier que votre référentiel contenant a au moins une branche créée et qu'il ne se trouve pas dans un état étrange.
Cette erreur peut se produire si vous ajoutez un sous-module qui n'a pas de branche master
. Si vous souhaitez utiliser une autre branche lors de l'ajout du sous-module (develop
par exemple), vous pouvez utiliser la commande suivante:
git submodule add -b <branch> <repository>
Comme @ drew-noakes le mentionne, cela peut être provoqué par la tentative d'ajouter un sous-module en utilisant un nom de répertoire répertorié dans votre fichier .gitignore .