Submodules de Git. Entrando en un nuevo clon del superproyecto

DE ACUERDO. Entonces pensé que me habían lamido … pero ahora …

Tengo un proyecto que incluye una pequeña biblioteca de GitHub como submodule. En la versión original de ese superproyecto, el submodule funciona como se esperaba.

Sin embargo, acabo de clonar el superproyecto, hice lo que creía que debía hacer: "git submodule init", conseguí que apareciera el directory del submodule, 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 bash

 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 = git@github.com:interstar/BEACHhtml.git 

En mi .gitmodules tengo esto:

 [submodule "external_libraries/BEACHhtml"] path = external_libraries/BEACHhtml url = git@github.com:interstar/BEACHhtml.git 

Alguien tiene una idea de lo que falta?

Tengo el mismo problema que tú. Este es un error en git: http://lists-archives.com/git/785138-git-submodule-update-is-not-fail-safe.html

En resumen, para su problema, intente:

 # rm -rf external_libraries/BEACHhtml # git submodule update 

Parece que hay algún problema con la carpeta de pago anterior, elimínelo y actualice de nuevo para resolver el problema.

Tuve este problema (una networking escamosa, así que me salí el process de extracción de submodules) y lo resolví haciendo este script (lo llamé git-submodule-fix para poder ejecutarlo como git submodule-fix )

 #!/bin/bash for arg do echo $arg find . -name "`basename $arg`" | grep "$arg\$" | xargs rm -fr done 

Si obtiene esto, es decir, desde una git submodule update

 fatal: Needed a single revision Unable to find current revision in submodule path 'some/submodule/path' 

hacer

 git submodule-fix some/submodule/path git submodule update 

Resuelto eliminando 2 directorys y recuperando el submodule:

  1. Vaya a external_libraries/BEACHhtml y busque en .git file .git . Su contenido debe ser algo así como gitdir: ../../.git/modules/external_libraries/BEACHhtml
  2. Borre external_libraries/BEACHhtml y .git/modules/external_libraries/BEACHhtml .

A partir de ahora la git submodule update ejecuta sin errores.

Usa una herramienta diff para comparar el clon original que está funcionando y este. Además, ¿qué hace la salida del git submodule ? Asegúrese de estar apuntando a la misma twig en cada repository antes de hacerlo.

Sospecho que cambiaste a una twig o una revisión anterior donde el submodule no estaba definido.

espero que esto ayude

Tuve el mismo problema con un submodule en un proyecto. Cuando intenté clonar el submodule por separado, funcionó bien.

He intentado todas las respuestas anteriores, pero sin éxito (actualización del submodule git, …, eliminación de las carpetas del submodule, …).

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 más antigua, funcionaban sin problemas, pero estaban en Mac. Estoy en Win7 64 bits.

Estoy en Window7. ejecutar 'rm -rf src / sizzle', puede bien!

E: \ GitHub \ fork \ jquery> rm -rf src / sizzle
Actualización del submodule E: \ GitHub \ fork \ jquery> git
Ruta del submodule 'src / sizzle': activada '19c7b3440385c9f628a7bc1c5769f6946fcc6887'

E: \ GitHub \ fork \ jquery> grunt.cmd


Guardado como: maestro

Hecho, sin errores