D'ACCORD. Alors j'ai pensé que j'avais ça léché ... mais maintenant ...
J'ai un projet qui comprend une petite bibliothèque de GitHub en tant que sous-module. Dans la version originale de ce super-projet, le sous-module fonctionne comme prévu.
Cependant, je viens de cloner le superprojet, j'ai fait ce que je pensais devoir: "git submodule init", j'ai fait apparaître le répertoire du sous-module, mais il est vide.
Si j'essaye maintenant de faire
git submodule update
Je reçois
fatal: Needed a single revision
Unable to find current revision in submodule path 'external_libraries/BEACHhtml'
Si j'essaye
git submodule foreach git pull
Je reçois
Entering 'external_libraries/BEACHhtml'
fatal: Where do you want to fetch from today?
Stopping at 'external_libraries/BEACHhtml'; script returned non-zero status.
Dans mon .git / config, j'ai ceci:
[submodule "external_libraries/BEACHhtml"]
url = [email protected]:interstar/BEACHhtml.git
Dans mes .gitmodules j'ai ceci:
[submodule "external_libraries/BEACHhtml"]
path = external_libraries/BEACHhtml
url = [email protected]:interstar/BEACHhtml.git
Quelqu'un a-t-il une idée de ce qui manque?
la source
ext/blah
) et le dossier correspondant sous leGIT_DIR
(.git/modules/ext/blah
).git submodule update
continué à échouer sur mon serveur CI parce qu'il voulait que quelqu'un accepte les clés RSA (le serveur ci utilise normalement une connexion https et c'était la première fois qu'un sous-module établissait une connexion ssh). J'espère que cela permettra à quelqu'un de se gratter la tête une heure!J'ai eu ce problème (réseau floconneux, donc j'ai été abandonné à la caisse du sous-module comme celui-ci) et je l'ai résolu en créant ce script (nommé
git-submodule-fix
pour que je puisse l'exécuter commegit submodule-fix
)Si vous obtenez cela par exemple à partir d'un
git submodule update
faire
la source
Résolu en supprimant 2 répertoires et en récupérant le sous-module:
external_libraries/BEACHhtml
et regardez dans le.git
fichier. Son contenu devrait être quelque chose commegitdir: ../../.git/modules/external_libraries/BEACHhtml
external_libraries/BEACHhtml
et.git/modules/external_libraries/BEACHhtml
.A partir de maintenant, il
git submodule update
fonctionne sans erreurs.la source
git submodule init
avantgit submodule update
pour que le sous-module soit réinitialisé, cela fonctionnera.Si vous lisez en 2019 ou plus tard, mettez simplement à jour le client git. A travaillé pour moi.
la source
utilisez un outil de comparaison pour comparer le clone original qui fonctionne et celui-ci. Aussi, qu'est-ce que
git submodule
sortie. Assurez-vous de pointer vers la même branche dans chaque dépôt avant de le faire.Je soupçonne que vous êtes passé à une branche ou à une révision plus ancienne où le sous-module n'a pas été défini.
J'espère que cela t'aides
la source
J'ai eu le même problème avec un sous-module sur un projet. Lorsque j'ai essayé de cloner le sous-module séparément, cela fonctionnait bien.
J'ai essayé toutes les réponses ci-dessus, mais sans succès (mise à jour du sous-module git, ..., suppression des dossiers du sous-module, ...).
Le problème a disparu après la mise à jour de git (de Git-1.7.11-preview20120710) vers la dernière version (vers Git-1.8.1.2-preview20130201) à l'époque. Étrangement, mes collègues avaient une version encore plus ancienne, fonctionnaient sans aucun problème, mais ils étaient sur Mac. Je suis sur Win7 64bit.
la source