Estoy pensando en comenzar un pequeño proyecto y quiero hacer su versión con git.
Bitbucket me parece una buena opción con su plan gratuito. Quiero usarlo como la herramienta principal para trabajar con git ya que tienen buenas herramientas como una interfaz web, un cliente de Mac OS, etc. Pero, para tener una mayor protección contra cualquier daño accidental que pueda causar el uso de un servicio de terceros, también quiero instalar git en mi NAS como una segunda copia de seguridad del repositorio.
Ahora mi pregunta es, ¿es posible crear un repositorio en dos hosts diferentes y luego mantenerlos sincronizados? Por ejemplo, suponga que una vez por semana actualizo el repositorio en mi NAS para que coincida con el de Bitbucket. Luego, en caso de que ocurra algo con Bitbucket, aún tendré el repositorio completo con un historial completo de desarrollo en mi almacenamiento NAS local.
¿Y hay alguna manera de importar un repositorio existente con historial completo a otro servicio git?
Creo que duplicar es lo que necesito. Este artículo parece describir exactamente lo que necesito. Y esto uno también.
Creo que hará una copia completa con el historial completo e incluso confirmará automáticamente nuevas versiones a los repositorios en ambos hosts automáticamente.
Estoy en lo cierto?
Respuestas:
Sí, esa es exactamente la belleza de DVCS como git. Puede usar cualquier número de repositorios diferentes con el mismo estado que el de bitbucket o github.
Incluso su copia local (el repositorio en su computadora) suele ser un clon completo del repositorio remoto.
Lo único que tiene que hacer para mantener sincronizados múltiples repositorios es extraer uno (generalmente llamado origen o ascendente) y empujar a las copias de respaldo.
fuente
Aquí hay una solución probada para el problema: Repositorios de sincronización remota automática Git 2
Un script simple para sincronizar 2 repositorios remotos de Git
He buscado en la web un script simple que se sincronice. ¡2 repositorios remotos, pero no pude encontrar ese script incluso si muchos parecen buscarlo! Así que he creado 2 repositorios de prueba simples y comencé a probar y construir tal script.
¿Qué tal script debería hacer?
Bueno, en general, los pasos para hacerlo son simples: 1. Clonar el primer repositorio 1. Agregar el segundo como repositorio remoto adicional 1. buscar todo lo que hay en el segundo repositorio 1. empujar el repositorio local actualizado al 2 repositorios remotos.
El problema pendiente es: ¿cuáles son los interruptores correctos para todos los comandos git anteriores?
Asi que aqui esta...
Guión gisp 2repos-sync.sh
NOTA : ¡este script no está resolviendo casos de conflictos entre el contenido del repositorio!
fuente
Utilizo un GitLab privado para almacenar todos mis repositorios, por lo que solo tengo un origen al que presiono y extraigo mientras realizo el desarrollo diario.
Pero, para proyectos de código abierto, GitHub es una comunidad mucho más vibrante, por lo tanto, si quiero aceptar contribuciones de la comunidad a mis proyectos, utilizo el sistema de enlace web de GitLab para hacer ping a un servidor que ejecuto, que luego actualiza mis repositorios públicos en GitHub.
Esto me permite tratar a GitHub como otro control remoto del que puedo sacar cuando alguien contribuye, luego me fusiono, no-ff localmente, y hay un flujo de cómo todos mis repositorios públicos y primarios distribuyen los cambios.
fuente