No se ha podido 'git git submódulo foreach pull`
-
18-09-2019 - |
Pregunta
Esta pregunta se basa en este hilo .
Mis .gitmodules es en mi casa
[submodule "bin"]
path = bin
url = git://github.com/masi/bin.git
Mi -estructura carpeta en mi casa:
~
|-- [drwxr-xr-x] bin // this is the folder which I make a submodule
// it is also a folder where I have a Git to push my submodule's files
| -- fileA
` -- folderA
...
corro
git submodule init # I get no output from these commands
git submodule update
corro
git submodule foreach git pull
consigo
Entering 'bin'
fatal: Where do you want to fetch from today?
Stopping at 'bin'; script returned non-zero status.
Mi primera suposición reparar el fallo era cambiar path = bin
a path = /Users/Masi/bin
. Sin embargo, esto no resuelve el problema.
¿Cómo se puede cargar el contenido del repositorio externo que es un submódulo en mi Git?
Solución
Este es normalmente el error cometido cuando no hay configurado remoto.
(De este hilo )
Se introdujo un parche que corrige al menos la regresión cuando se ejecuta "git pull" en un repositorio inicializado Hace mucho tiempo que no utiliza el archivo .git / config para especificar dónde mis repositorios remotos son.
un mensaje mejor probablemente sería algo como:
No hay mando por defecto está configurado para su rama actual,
y el valor predeterminado a distancia "origen" no está configurado bien.Creo que el mensaje perdido está haciendo fácil de usar en los pases anteriores debido a ser inaccesible en el momento.
Así que este mensaje indica el repositorio remoto mencionado en .git / módulos no se declara en .git / config
Los submódulos no deben confundirse con los mandos a distancia, que están destinados principalmente para las ramas de un mismo proyecto;
submódulos son para diferentes proyectos que le gustaría hacer parte de su árbol de fuentes, mientras que la historia de los dos proyectos aún se mantiene totalmente independiente y no se puede modificar el contenido del submódulo dentro del proyecto principal.
Creo que puede haber perdido el paso de git submodule init
:
submódulo init
Inicializar los submódulos, es decir. registrar cada submódulo nombre y la dirección URL que se encuentra en .gitmodules en .git / config .
La clave utilizada en.git/config
essubmodule.$name.url
.
Esta orden no altera la información existente en .git / config.
A continuación, puede personalizar las URLs clon submódulo en.git/config
para su configuración local y proceder a la actualización GIT submódulo; También se puede simplemente usargit submodule update --init
sin el paso de inicialización explícita si usted no tiene intención de personalizar cualquier ubicación submódulo.
Si tu repositorio remoto (declarada en .git / modules) se posiciona adecuadamente en .git / config, no debería tener este mensaje de error más.
Antes de usar submódulos (Pullin), las etapas:
git submodule init
git submodule update
siendo necesario.