2012-04-25 16 views
23

Creé un proyecto submodule y lo puse en Github.git: cambiar el origen del submódulo clonado

creé otro proyecto, supermodule y, a continuación, hizo esto:

cd supermodule 
git init 
mkdir lib 
git clone git://github.com/tandu/submodule lib/submodule 
git submodule add ./lib/submodule lib/submodule 

Esto funcionó bien, pero en el sitio web, no puede encontrar el enlace al submódulo durante la visualización de los archivos (de hecho, solo dice "Cargando datos de compromiso" para siempre). La carpeta del submódulo en sí tiene el origin correcto.

Al parecer, lo que debería haber hecho era

... 
mkdir lib 
git submodule add git://github.com/tandu/submodule lib 

... pero es demasiado tarde para eso. ¿Cómo puedo hacer que el submódulo en este proyecto apunte correctamente al origin?

Respuesta

41

Esto aparentemente depende mucho de la versión de git que esté utilizando.

  1. Si está presente, cambie la entrada url[submodule "<dirname>"] en la sección del archivo .gitmodules.
  2. Si está presente, cambie la entrada url en la sección [submodule "<dirname>"] del archivo .git/config.
  3. Cambie el url en la configuración del propio submódulo. La ubicación del archivo config depende de la versión. Las versiones anteriores lo tenían en <dirname>/.git/config, las más nuevas en .git/modules/<dirname>/config. Sin embargo, puede utilizar siempre por debajo de comando:
cd <dirname> 
git config remote.origin.url <new_url> 
+5

con la versión actual del GIT (2.1.0), haciendo 'git submódulo de sincronización --recursive' era suficiente para mí para actualizar a submódulo 'origen 'remoto. – desseim

Cuestiones relacionadas