¿Qué es un control de versiones?
Un control de versiones es un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo.
Cristian Escalante
Última actualización: 19 de abril de 2025
¿Qué es un control de versiones?
Un control de versiones es un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo. Es como una máquina del tiempo para tu código (o cualquier archivo), que te deja ver versiones anteriores, compararlas, restaurarlas o colaborar con otros sin perder nada. Es decir, esto permite:
- Revertir a versiones anteriores si algo sale mal.
- Comparar cambios entre diferentes versiones.
- Trabajar en equipo sin sobrescribir el trabajo de otros.
En el desarrollo de Software comprender ¿qué es? y ¿cómo funciona? un control de versiones se vuelve indispensable, ya que estas se vuelve en una herramienta de uso diario.
¿Por qué es importante para los estudiantes?
Como estudiante, es probable que trabajes en proyectos personales, tareas colaborativas o prácticas de laboratorio. Usar un sistema de control de versiones como Git te da muchas ventajas:
- Evitar perder trabajo importante si cometes un error.
- Colaborar con compañeros de forma ordenada.
- Aprender una habilidad altamente demandada por las empresas.
- Documentar tu progreso y construir un portafolio en GitHub.
Terminología a tomar en cuenta
Repositorio
Un repositorio (o repo) es un espacio donde se almacena un proyecto, incluyendo todos sus archivos, historial de cambios y configuraciones. Puede estar en tu computadora (local) o en plataformas como GitHub (remoto).
📌 Ejemplo:
Al crear un proyecto en GitHub, se genera un repositorio con una URL como:https://github.com/tu-usuario/nombre-del-proyecto
.
Versión
Una versión es un estado específico del proyecto en un momento dado. Git guarda cada cambio como una versión recuperable.
📌 Ejemplo:
- Versión 1.0: Primera entrega del proyecto.
- Versión 1.1: Se corrigió un error en el formulario.
Ramas (Branch)
Una rama (branch) es una línea independiente de desarrollo. Permite trabajar en nuevas funciones sin afectar el código principal (usualmente la rama main
o master
).
📌 Ejemplo:
git branch nueva-funcionalidad # Crea una rama
git checkout nueva-funcionalidad # Cambia a esa rama
log
El log es el historial de commits (cambios guardados) en un repositorio. Muestra autores, fechas y mensajes descriptivos.
📌 Ejemplo:
git log # Muestra el historial completo
checkout
El comando checkout permite cambiar entre ramas o restaurar archivos a versiones anteriores.
📌 Ejemplo:
git checkout main # Regresa a la rama principal
git checkout a1b2c3d4 # Revierte a un commit específico
commit
Un commit es un "guardado" de los cambios realizados, acompañado de un mensaje descriptivo.
📌 Ejemplo:
git commit -m "Se corrigió el error de login"
merge
Merge combina los cambios de una rama con otra (ejemplo: integrar una funcionalidad nueva a la rama principal).
📌 Ejemplo:
git checkout main
git merge nueva-funcionalidad # Fusiona la rama con main
versionamiento semantico: Es un estándar para numerar versiones de software con el formato MAYOR.MENOR.PARCHE (ejemplo: 2.1.3):
- MAYOR: Cambios incompatibles con versiones anteriores.
- MENOR: Nuevas funcionalidades compatibles.
- PARCHE: Corrección de errores menores.
📌 Ejemplo:
- 1.0.0: Primera versión estable.
- 1.1.0: Se agregó soporte para móviles.
- 1.1.1: Se arregló un bug crítico.