2010-01-06 8 views

Respuesta

4

Por lo que yo sé, una sub-módulo tiene un solo URL, que se cita en:

  • .gitmodules
 
    $ cat .gitmodules 
    [submodule "a"] 
      path = a 
      url = /home/moses/subtut/public/a/.git 
    [submodule "b"] 
      path = b 
      url = /home/moses/subtut/public/b/.git 
  • y en la configuración del directorio .git de la submódulo

Significado si esa url está caída, puede que tenga que cambiarse en esas dos ubicaciones, pero no he probado ese proceso.


buenos comentarios de Gattster

git submodule sync. 

De acuerdo con la docs:

sincroniza el ajuste al nivel especificado en la configuración .gitmodules URL remota submódulos.
Esto es útil cuando las URL de los submódulos cambian en sentido ascendente y necesita actualizar sus repositorios locales en consecuencia.

  • "git submodule sync" sincroniza todos los submódulos
  • mientras que "git submodule sync -- A" sincroniza submódulo "A" solamente.

Dicho esto, la modificación .gitmodule podría ser mejor hecho en forma aislada (es decir, en una rama) hasta que los nuevos URL se puede validar/publicada.

+0

El problema de cambiar la URL es que cuando el repositorio principal, los .gitmodules también se comprometerán y esas URL pueden no funcionar para todos los que clonan el repositorio principal. Pensé en trabajar en una sucursal local que la única diferencia con respecto al máster es que sus .gitmodules tienen diferentes URL. Feo, pero funcionaría,: -/ – Silas

+1

Creo que puedes ejecutar 'git submodule sync'. De acuerdo con los documentos, hace esto "Sincroniza los submódulos" configuración de URL remota para el valor especificado en .gitmodules. Esto es útil cuando las URL de los submódulos cambian en sentido ascendente y necesita actualizar sus repositorios locales en consecuencia. " – Gattster

+0

@qris que me recuerda a http://stackoverflow.com/questions/12078365/how-exactly-does-git-submodule-work/12078816#12078816: la actualización del 'git submodule' también es peligrosa. – VonC

1

No creo que sea posible. Debería ser posible hacer esto manualmente revisando su proyecto, inicializando sus submódulos, y luego cd en un directorio de submódulos y actualizar el origen remoto de git a la nueva URL del repositorio.

Cuestiones relacionadas