D'ACCORD. Alors j'ai pensé que j'avais léché ça ... mais maintenant ...
J'ai un projet qui inclut 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, de faire ce que je pensais devoir faire: "git submodule init", le répertoire du sous-module apparaît, mais il est vide.
Si j'essaie 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 une idée de ce qui manque?
Il semble que maintenant (en 2019) l'installation du dernier client GIT pourrait résoudre le problème selon les commentaires ci-dessous. Cela devrait être la meilleure solution pour le moment.
J'ai le même problème que vous. Ceci est un bug dans git: http://lists-archives.com/git/785138-git-submodule-update-is-not-fail-safe.html
En bref, pour votre problème, essayez:
# rm -rf external_libraries/BEACHhtml
# git submodule update
Il semble qu'il y ait un problème avec le dossier de paiement précédent, supprimez-le et mettez à jour à nouveau le problème.
J'ai eu ce problème (réseau floconneux donc je suis tombé chèque de sous-module comme ça) et je l'ai résolu en faisant ce script (nommé le git-submodule-fix
afin que je puisse l'exécuter en tant que git submodule-fix
)
#!/bin/bash
for arg
do
echo $arg
find . -name "`basename $arg`" | grep "$arg\$" | xargs rm -fr
done
Si vous obtenez cela, c’est-à-dire d’un git submodule update
fatal: Needed a single revision
Unable to find current revision in submodule path 'some/submodule/path'
faire
git submodule-fix some/submodule/path
git submodule update
Résolu en supprimant 2 répertoires et en relançant le sous-module:
external_libraries/BEACHhtml
et se pencher sur .git
fichier. Son contenu devrait être quelque chose comme gitdir: ../../.git/modules/external_libraries/BEACHhtml
external_libraries/BEACHhtml
et .git/modules/external_libraries/BEACHhtml
répertoires.À partir de maintenant git submodule update
s'exécute sans erreur.
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 a bien fonctionné.
J'ai essayé toutes les réponses ci-dessus, mais sans succès (mise à jour de sous-module git, ..., suppression des dossiers de sous-module, ...).
Le problème a disparu après la mise à jour de git (de Git-1.7.11-preview20120710) à la dernière version (vers Git-1.8.1.2-preview20130201) à ce moment-là. Étrangement, mes collègues avaient une version encore plus ancienne, travaillaient sans problème, mais ils étaient sur Mac. Je suis sur Win7 64bit.
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 bien indiquer la même branche dans chaque dépôt avant de le faire.
Je soupçonne que vous êtes passé à une branche ou à une version antérieure où le sous-module n'était pas défini.
j'espère que cela t'aides
Si vous lisez en 2019 ou plus tard, il suffit de mettre à jour le client git. Travaillé pour moi.