OKAY. Así que pensé que tenía esto lamido ... pero ahora ...
Tengo un proyecto que incluye una pequeña biblioteca de GitHub como submódulo. En la versión original de ese superproyecto, el submódulo funciona como se esperaba.
Sin embargo, simplemente cloné el superproyecto, hice lo que pensé que debería: "git submodule init", obtuve el directorio del submódulo para que apareciera, pero está vacío.
Si ahora trato de hacer
git submodule update
yo obtengo
fatal: Needed a single revision
Unable to find current revision in submodule path 'external_libraries/BEACHhtml'
Si lo intento
git submodule foreach git pull
yo obtengo
Entering 'external_libraries/BEACHhtml'
fatal: Where do you want to fetch from today?
Stopping at 'external_libraries/BEACHhtml'; script returned non-zero status.
En mi .git / config, tengo esto:
[submodule "external_libraries/BEACHhtml"]
url = [email protected]:interstar/BEACHhtml.git
En mis .gitmodules tengo esto:
[submodule "external_libraries/BEACHhtml"]
path = external_libraries/BEACHhtml
url = [email protected]:interstar/BEACHhtml.git
¿Alguien tiene una idea de lo que falta?
fuente
ext/blah
) como la carpeta correspondiente debajo deGIT_DIR
(.git/modules/ext/blah
).git submodule update
seguí fallando en mi servidor CI porque quería que alguien aceptara las claves RSA (el servidor ci normalmente usa una conexión https y esta fue la primera vez que un submódulo ingresó a una conexión ssh). ¡Espero que le ahorre a alguien una hora de rascarse la cabeza!Tuve este problema (red inestable, así que obtuve la verificación del submódulo de esta manera) y lo resolví haciendo este script (lo nombré
git-submodule-fix
para poder ejecutarlo comogit submodule-fix
)Si obtiene esto, es decir, de un
git submodule update
hacer
fuente
Resuelto eliminando 2 directorios y volviendo a buscar el submódulo:
external_libraries/BEACHhtml
y busque en el.git
archivo. Su contenido debería ser algo comogitdir: ../../.git/modules/external_libraries/BEACHhtml
external_libraries/BEACHhtml
y.git/modules/external_libraries/BEACHhtml
.A partir de ahora
git submodule update
corre sin errores.fuente
git submodule init
antesgit submodule update
para que el submódulo se reinicie, entonces esto funcionará.Si está leyendo en 2019 o posterior, simplemente actualice el cliente git. Trabajó para mi.
fuente
use una herramienta de diferenciación para comparar el clon original que está funcionando y este. Además, ¿qué
git submodule
sale. Asegúrese de estar apuntando a la misma rama en cada repositorio antes de hacerlo.Sospecho que ha cambiado a una rama o revisión anterior donde el submódulo no estaba definido.
espero que esto ayude
fuente
Tuve el mismo problema con un submódulo en un proyecto. Cuando intenté clonar el submódulo por separado, funcionó bien.
Probé todas las respuestas anteriores, pero sin éxito (actualización del submódulo git, ..., eliminando las carpetas del submódulo, ...).
El problema desapareció después de la actualización de git (de Git-1.7.11-preview20120710) a la última versión (a Git-1.8.1.2-preview20130201) en ese momento. Extrañamente, mis colegas tenían una versión aún más antigua, trabajaban sin problemas, pero estaban en Mac. Estoy en Win7 de 64 bits.
fuente