¿Cómo trabajar con múltiples repositorys git (labeldos)?

Estoy trabajando en un proyecto que incluye múltiples repositorys git. La estructura de la carpeta se ve algo así;

repo1/ + ---repo2/ ---repo3/ ... ---repo8/ 

Entonces, para configurar mi entorno de desarrollo, necesitaría ejecutar algo como;

 git clone http://path_to_git_repo.git top_folder cd top_folder git checkout tags/release34 git clone http://path_to_another_repo.git subfolder1 cd subfolder1 git checkout tags/release55 cd .. git clone http://path_to_another_repo.git subfolder2 cd subfolder2 git checkout tags/rel-44-abc 

… etc

Aproximadamente una semana después, diferentes equipos enviarían sus propias actualizaciones / tags y necesitaría volver a sincronizar haciendo algo como esto;

 cd top_folder git checkout tags/release44 cd subfolder1 git checkout tags/release-bignewfeature cd .. cd subfolder1 git checkout tags/release-reverting_tosomethingelse cd .. 

… etc

Hacer toda la resynchronization es muy … repetitivo y tedioso. ¿Alguien tiene alguna sugerencia sobre cómo podría hacer las cosas más fáciles para mí?

Escuché (y probé) la herramienta mr, pero solo se actualizará a la última versión HEAD de un repository, mientras que solo necesito actualizar algunas tags.

Debería considerar el uso de git submodules para eso, lo que evita todos los pasos de tags / synchronization.

Su repo repo1 padre simplemente hace reference a una colección de SHA1 fijo, uno por cada repository de submodules .

Aproximadamente una semana después, diferentes equipos impulsarían sus propias actualizaciones / tags

Puede hacer que cada submodule siga una bifurcación , lo que significa que la resynchronization sería:

 git submodule update --remote 

Un mejor enfoque es usar el git subtree . Es más fácil mantener el repository dependiente del server.

Puede leer más sobre submodule y subtree aquí y aquí