Control de Versiones

Publicado el 2025-12-23
4 min lectura

Un control de versiones es un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante. Aunque los ejemplos típicos usan código fuente, en realidad puedes versionar casi cualquier tipo de archivo: imágenes, diseños, documentos, etc.

¿Por qué usar control de versiones?

Estos sistemas te permiten:

Tipos de Sistemas de Control de Versiones

Control de Versiones Local (VCS Local)

Descripción: Es el método más simple y primitivo. Muchas personas gestionan versiones copiando archivos a otro directorio, quizás indicando la fecha y hora.

Una herramienta popular fue RCS (Revision Control System), que funciona guardando conjuntos de diferencias entre archivos en un formato especial en el disco, permitiendo recrear cualquier archivo en cualquier punto del tiempo.

Problema principal: Todo está en un solo lugar en tu computadora, así que si pierdes ese disco duro, pierdes todo el historial del proyecto.

Control de Versiones Centralizado (CVCS)

Descripción: Estos sistemas fueron desarrollados para solucionar el problema de que las personas necesitan colaborar con desarrolladores en otros sistemas. Ejemplos incluyen CVS, Subversion y Perforce.

Características:

Ventajas:

Desventajas críticas:

Control de Versiones Distribuido (DVCS)

Descripción: Aquí es donde entran Git, Mercurial, Bazaar y Darcs.

Características principales:

Ventajas importantes:

¿Cuándo usar cada uno?

LOCAL:

CENTRALIZADO:

DISTRIBUIDO (Git):

Comparativa de Sistemas de Control de Versiones

CaracterísticaLocalCentralizadoDistribuido
Colaboración✅✅
Trabajo offline
Velocidad⚡⚡🐌
Backup completo
Curva aprendizaje🤔

Herramientas según el tipo

LOCAL:

CENTRALIZADO:

DISTRIBUIDO:

Tips para empezar

Conclusión

La evolución ha sido: Local → Centralizado → Distribuido. Cada tipo soluciona los problemas del anterior: los sistemas locales no permitían colaboración, los centralizados solucionaron eso pero crearon un punto único de fallo, y los distribuidos eliminaron ese riesgo dando a cada desarrollador una copia completa del proyecto.


Fuente consultada: Pro Git Book