Hoy he leído este artículo donde comentan que GitHub ya no es una empresa independiente dentro de Microsoft y me ha motivado a probar Codeberg como alternativa.
Algunos proyectos los pasé sin inconvenientes pero luego me encontré con un problema. El propio repositorio de este blog está en Github, porque desde ahí se integra con Cloudflare Pages, que es el servicio que compila en Jekyll el código y lo sirve en la web. De momento no me interesa cambiar ese flujo de trabajo, así que opté por alojar una copia del repositorio en Codeberg como respaldo, sin eliminar el de Github.
Y en ese momento es donde vi que, por comodidad quería poder hacer push en git hacia ambos repositorios para mantenerlos actualizados. Mi idea es algo como:
- El código real estará en Codeberg, así que fetch que hacen solo al remote de dicho servicio.
- Los push se hacen a los dos, por un lado a Codeberg para mantener actualizado el repositorio y por el otro a Github para que dispare el compilado y actualización del sitio.
Así que investigué y llegue a este artículo de Jeff Kreeftmeijer, que explica justo como hacer eso. En su blog está bien detallado el proceso, pero como está en inglés un resumen sencillo sería:
- Crear un nuevo remote llamado “origin” o “loquesetecante”:
git remote add origin https://codeberg.org/ejemplo/mirepo.git
- Luego agregarle ambos repositorios, el de github y el de Coberg como direcciones de push:
git remote set-url --add --push origin https://codeberg.org/ejemplo/mirepo.git
git remote set-url --add --push origin https://github.com/ejemplo/mirepo.git
- Entonces al controlar veremos algo así:
git remote show origin
remote origin
Fetch URL: https://codeberg.org/ejemplo/mirepo.git
Push URL: https://codeberg.org/ejemplo/mirepo.git
Push URL: https://github.com/ejemplo/mirepo.git
y listo, ahora con un simple “git push” actualizo ambos. Y lo mejor de todo, es que también funciona en apps como el cliente gráfico de Github, gitkraken, etc.
Actualización: 2025-08-21
Se que solo pasó un día desde este artículo, pero descubrí que Codeberg dentro de la configuración del repositorio tiene la opción se establecer que, de forma automática, haga un mirror a otro sitio. Entonces, desde esa opción configuré la ruta al repositorio remote de github, puse las credenciales y activé la opción que dice “sincronizar cuando los commits sean subidos” y quedó andando.
Con esta configuración, ya no necesito hacer el push a los dos remotes como explicaba previamente. Sino que son solo mandar el push a codeberg, este se encarga casi en el acto de replicarlo hacia github quedando ambos sincronizados.
Así que, ahora les dejo ambas soluciones por si usan Codeberg o si usan otro repositorio puedan conocer las alternativas disponibles.
Puedes escribirme en mastodon a @[email protected] o
mandarme un correo si deseas comentarme algo