No se encontró ninguna asignación de submódulo en .gitmodule para una ruta que no es un submódulo
Tengo un proyecto que tiene un submódulo enlib/three20
Mi .gitmodule
archivo se ve así:
[submodule "lib/three20"]
path = lib/three20
url = git://github.com/facebook/three20.git
He clonado esto en el pasado sin errores ( git submodule init
seguido de a git submodule update
) y ha estado funcionando por un tiempo.
Intenté clonar esto en una máquina nueva y ahora aparece este error git submodule init
:
No submodule mapping found in .gitmodules for path 'Classes/Support/Three20'
Esa ruta es sólo una carpeta vacía en Xcode que uso para albergar los proyectos del otro directorio. No es parte del .gitmodules
archivo, por lo que no veo de dónde obtiene esta ruta.
¿Algunas ideas?
No se encontró ninguna asignación de submódulo en .gitmodules para la ruta 'OtherLibrary/MKStore' cuando
$ git submodule update --init
No sabía por qué ocurrió el error. Después de pasar un minuto y encontré la respuesta en stackoverflow.
$ git rm --cached OtherLibrary/MKStore
y luego actualice el submódulo nuevamente. Está funcionando bien.
http://en.saturngod.net/no-submodule-mapping-found-in-gitmodules
Siguiendo la respuesta de rajibchowdhury (votada a favor), use el comando que se recomienda para eliminar la entrada especial en el índice que indica un submódulo (una 'carpeta' con un modo especial ).git rm
160000
Si no se hace referencia a esa ruta.gitmodules
de entrada especial (como ' Classes/Support/Three20
' en la pregunta original), entonces debe eliminarla para evitar el mensaje de error " No se encontró ninguna asignación de submódulo en .gitmodules
la ruta ".
Puede consultar todas las entradas en el índice que hacen referencia a submódulos:
git ls-files --stage | grep 160000
Respuesta anterior (noviembre de 2010)
Es posible que no haya declarado correctamente su submódulo inicial (es decir, sin ninguna cola ' /
' al final, como se describe en mi respuesta anterior , aunque tenga .gitmodules
rutas que se vean bien en él).
Este hilo menciona:
¿Recibe el mismo error al ejecutar 'git submodule init' desde un clon nuevo?
Si es así, algo anda mal.Si no tiene submódulos, elimine
.gitmodules
y cualquier referencia a submódulos en.git/config
y asegúrese de que elPikimal
directorio no contenga ningún.git
directorio.
Si eso soluciona el problema, regístrese y haga lo mismo en su copia de trabajo del crucero.
Obviamente, no elimine su .gitmodules
archivo principal, pero cuide otros .gitmodules
archivos adicionales en su árbol de trabajo.
Aún en el tema de "inicialización incorrecta de submódulos", Jefromi menciona submódulos que en realidad son gitlinks .
Consulte ¿Cómo rastrear contenido sin seguimiento? para convertir dicho directorio en un submódulo real: como lo comenta ipatch y detalles en las notas de ipatch :
Si se encuentra con el siguiente error al trabajar con submódulos de git
mr-fancy-42-repo already exists in the index
- Eliminar la carpeta/directorio del submódulo
- Eliminar el caché de git para la carpeta/directorio
- Luego reinicialice el submódulo
rm -Rf /path/to/mr-fancy-42-repo git rm -R /path/to/mr-fancy-42-repo git submodule add [mr-fancy-42-submodule-repo] /path/to/initialize/submodule/repo
Cuando uso SourceTree para hacer las cosas, arrojará este mensaje.
El mensaje que encontré:
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree submodule update --init --recursive
No submodule mapping found in .gitmodules for path 'SampleProject/SampleProject'
Completed with errors, see above
Mi escenario es que apliqué mal el directorio del proyecto que contiene la carpeta .git .
SourceTree consideró esta carpeta como un submódulo git, pero en realidad no.
Mi solución es usar la línea de comando para eliminarlo.
$ git rm -r SampleProject --cached
$ git commit -m "clean up folders"
Retire la basura en git y manténgala limpia.
Resolví este problema por mí. Inicialmente intenté hacer esto:
git submodule add --branch master [URL] [PATH_TO_SUBMODULE]
Resulta que la especificación de la opción --branch no debe usarse si desea clonar la rama maestra . Lanza este error:
fatal: Cannot force update the current branch.
Unable to checkout submodule '[PATH_TO_SUBMODULE]'
Cada vez que intentas hacer un
git submodule sync
Se arrojará este error:
No submodule mapping found in .gitmodules for path '[PATH_TO_SUBMODULE]'
Y las líneas necesarias en .gitmodules nunca se agregan.
Entonces la solución para mí fue esta:
git submodule add [URL] [PATH_TO_SUBMODULE]