Inicio › Tecnología › Control De Versiones Distribuido
Un sistema de control de versiones distribuido (DVCS) es aquel en el qué cada persona del equipo posee una copia completa del historial del proyecto en su propio equipo, incluidas todas las versiones anteriores de cada archivo, en lugar de depender de un único servidor central qué guarde ese historial como ocurría en sistemas antiguos como CVS o Subversion. Git, creado por Linus Torvalds en 2005 para el desarrollo del kernel de Linux, es hoy el ejemplo dominante de este modelo, junto con alternativas como Mercurial. Al tener el historial completo en local, es posible hacer commits, crear ramas o consultar versiones anteriores sin conexión a internet, y la sincronización con otros equipos ocurre de forma explícita mediante operaciones como push y pull hacia repositorios remotos alojados en plataformas como GitHub o GitLab.
Cada programador tiene en su propio ordenador una copia completa de todo el historial del proyecto, no solo la versión actual. Eso significa qué puede trabajar, guardar cambios y consultar versiones antiguas aunque no tenga internet en ese momento, y solo cuando quiere compartir su trabajo lo sube a un servidor remoto compartido con el resto del equipo.
Un desarrollador qué viaja en tren sin conexión estable puede seguir haciendo commits, creando ramas nuevas y consultando el historial completo de meses atrás sin ningún problema, porque todo ese historial vive ya en su portátil; solo cuando recupera conexión sincroniza (push) sus cambios locales con el repositorio remoto compartido en GitHub.
En Subversion solo el servidor central guarda el historial completo y cada cliente descarga la versión actual; en Git cada copia local incluye todo el historial, lo qué permite trabajar sin conexión sin depender de qué sobreviva el servidor central.
Es una línea de desarrollo independiente qué parte de un punto concreto del historial, permitiendo trabajar en una funcionalidad o corrección sin afectar al código principal hasta qué esos cambios se fusionan de vuelta cuando están listos.
No. Git es el sistema de control de versiones en sí, qué funciona de forma totalmente local; GitHub es una plataforma comercial qué aloja repositorios remotos de Git y añade funciones colaborativas como pull requests e issues.