Mantenimiento y sincronización de un repository de Git remoto duplicado

Recientemente estoy usando un servidor git remoto (mi propia computadora), y el servidor no funciona correctamente y no se puede acceder de forma remota.

Me preguntaba si existe una forma adecuada de mantener DOS depósitos remotos, de modo que el segundo depósito en mi otra computadora pueda usarse automáticamente cuando el primero falla.

Mi segunda pregunta es cómo automáticamente (por ejemplo, a través de un script) sincronizar los depósitos remotos primarios y de respaldo periódicamente, y cómo puedo cambiar cuál es el depósito predeterminado / primario.

Mi caso de uso diario es bastante simple, de la siguiente manera:

git clone user@host:A.git cd A (modify code ..) git add . git commit -m "..." git push git pull .... 

Entonces, no hay ramificación y conflictos no es mi problema aquí. Los repositorys primario y de respaldo (s) deberían ser solo instantáneas del mismo trabajo en diferentes momentos. Algunos de ellos pueden estar rezagados debido a problemas de accesibilidad.

PD: No estoy preguntando los fundamentos de cómo configurar un depósito remoto (vacío), y hago push-pull regulares usando ssh. Lo que estoy preguntando es si hay una manera de cambiar automáticamente entre un repository primario y uno de respaldo cuando uno de ellos falla.

Gracias.

— EDITAR —

Para aclarar, mi pregunta se reduce a esto:

¿Hay alguna manera de configurar dos repositorys remotos, como un RAID de duplicación (matriz de discos), donde

  1. una solicitud de pull extrae del repository más actualizado, y una solicitud de push envía cambios a todos los servidores virtuales.

  2. Si uno de los repos descendió y vuelve nuevamente, recogerá los cambios acumulados en otros repositorys.

Nota: hay una publicación anterior aquí , que hace una pregunta relacionada. Pero las respuestas allí no abordaron el problema de sincronización, y lo que ocurre cuando varios repos se vuelven fuera de sincronización.

Puede mantener un segundo depósito vacío en cualquier lugar que desee (como un disco usb), y presionar automáticamente en ambos controles remotos a la vez.
Ver ” tirar / empujar desde múltiples ubicaciones remotas “.

Eso o puede configurar un script que haga una copia de seguridad, que se llama en Git un paquete .
Recientemente escribí un script que hace:

  • una copia de seguridad completa si la última es más de una semana
  • una copia de seguridad incremental (si se han realizado nuevas confirmaciones)

Puede ejecutar ese script en cualquier momento: si no se han creado nuevos commits, no hará nada.

La idea detrás de los paquetes es guardar un repository como un archivo (mucho más seguro que guardar una gran cantidad de archivos en un árbol .git , y más fácil de copiar).

    Intereting Posts