Mirror Git Repository Periódicamente

Digamos que tengo dos repositorys Git que se han creado. Un repository es accesible para mi equipo de software internamente, pero el acceso externo del cliente no está permitido (llámalo repository-espejo ). El otro repository es accesible por mi equipo de software y el equipo de software de mi cliente (llámalo el depósito duplicado ).

Me gustaría realizar los cambios tres veces al día (temprano en la mañana, después del almuerzo, al final del día) en el depósito duplicado . ¿Cuál es el método más recomendado para sincronizar los cambios en el repository-a-espejo con el repository duplicado usando Git?

Investigué un poco y encontré páginas de ayuda sobre cómo duplicar un repository en otra location . Parece que la única opción realmente es definir un destino remoto diferente (el espejo) y enviar references a ese repository. ¿Es esto correcto?

Estás en lo correcto, esta es generalmente la mejor manera de lograr duplicar.

Si ambos equipos se comprometerán con sus repositorys respectivos, es posible que sea mejor con un tenedor más tradicional en lugar de un espejo. La duplicación bidireccional es teóricamente posible, pero cargada de problemas.

No me atrevo a decirle que no use este flujo de trabajo, soy muy pragmático a la hora de encontrar un flujo de trabajo que satisfaga sus necesidades. Pero advertiré que 'git mirroring' es una de esas frases que arroja pequeñas señales de alerta en mi cerebro porque a menudo es una solución a un síntoma de un problema mucho más grande. Por lo tanto, recomendaré tomar un momento para dar un paso atrás y articular sus razones.

Por ejemplo, podría preguntarse a sí mismo: si todos tienen acceso al repository externo, ¿por qué no todos deben usar la fuente externa? Si la respuesta automática es "security", tenga en count que ya está planeando enviar su base de código y su historial al control remoto. Por supuesto, a veces la respuesta es "los [laywers | owners | lagartos] lo dicen", en cuyo punto solo tienes que lidiar con eso.