Saltar a contenido

Concepto de control de versiones

Problema sin control de versiones

En el pasado, el flujo de trabajo en empresas era muy simple:
- El desarrollador modificaba la página web.
- Subía la nueva copia al servidor mediante FTP.

Problemas

  • Si dos personas modificaban el mismo archivo y lo subían al servidor, uno sobrescribía el trabajo del otro.
  • No había forma sencilla de recuperar versiones anteriores.

¿Qué es un sistema de control de versiones?

Un sistema de control de versiones (VCS, Version Control System) es una herramienta que:

  • Registra los cambios realizados en archivos o proyectos.
  • Permite volver a versiones anteriores.
  • Muestra quién hizo cada cambio y cuándo.
  • Evita que se pierda el trabajo si alguien comete un error.

Ventajas de usar control de versiones

  • Historial completo de cambios en el proyecto.
  • Recuperar archivos o versiones anteriores fácilmente.
  • Saber qué persona hizo cada cambio.
  • Comparar versiones para encontrar errores.
  • Trabajar en equipo sin sobrescribir cambios.
  • Seguridad frente a pérdidas o errores graves.

¿Cómo funciona Git?

  • En Git, un proyecto se llama repositorio.
  • Es un repositorio distribuido:

    • Cada persona del equipo tiene una copia completa del repositorio.
    • Existe un repositorio central (ejemplo: GitHub, GitLab, Bitbucket).
    • Cada miembro sube sus cambios al repositorio central y descarga los de los demás.

Ejemplo visual del flujo:

  1. Clonar el repositorio central → git clone
  2. Hacer cambios en los archivos.
  3. Guardar los cambios en el repositorio local → git commit.
  4. Subir cambios al central → git push.
  5. Descargar cambios de otros compañeros → git pull.

Aplicaciones prácticas

El control de versiones no solo es útil en programación:

  • Diseñadores gráficos pueden guardar y recuperar diferentes versiones de una imagen.
  • Equipos de redacción pueden mantener historial de documentos.
  • Cualquier proyecto colaborativo se beneficia de un historial de cambios.

Linus Torvalds

You can do a lot of things with git, and many of the rules of what you should do are not so much technical limitations but are about what works well when working together with other people. So git is a very powerful set of tools.