El control de versiones es uno de esos conceptos que suenan muy técnicos pero que en el TAI se piden a nivel de saber qué es, para qué sirve y qué diferencia hay entre los comandos básicos, no a nivel de programador profesional. Si te has topado con Git en el temario del Bloque III y no sabes por dónde cogerlo, aquí tienes la versión sin liarte.
¿Qué es el control de versiones y por qué está en el temario del TAI?
El control de versiones es un sistema que guarda el historial de cambios de un proyecto de software: quién modificó qué, cuándo y por qué. Dentro del Bloque III, este contenido entra en el bloque de ingeniería del software y ciclo de vida de las aplicaciones, junto a metodologías de desarrollo y gestión de proyectos. La idea que tienes que quedarte es sencilla: sin control de versiones, varias personas no podrían trabajar sobre el mismo código sin pisarse el trabajo unas a otras.
Git es, con diferencia, el sistema de control de versiones más usado hoy en cualquier administración y empresa que desarrolle software, así que es el que más probabilidades tiene de aparecer citado en una pregunta de examen.
¿Qué diferencia hay entre un repositorio local y uno remoto?
Un repositorio local vive en tu propio ordenador: es la copia del proyecto con todo su historial de cambios guardado en tu disco. Un repositorio remoto vive en un servidor (por ejemplo en GitHub, GitLab o Bitbucket) y sirve como punto central donde varias personas suben y descargan cambios.
El flujo básico que conviene tener claro para el examen es este:
- Clonar un repositorio remoto es traerte una copia completa a tu equipo.
- Confirmar cambios (commit) guarda una fotografía del estado del proyecto en tu repositorio local, con un mensaje que explica qué se ha modificado.
- Subir cambios (push) envía esos commits desde tu repositorio local al remoto.
- Descargar cambios (pull) trae al repositorio local los cambios que otras personas han subido al remoto.
¿Qué es una rama y por qué se usan tanto?
Una rama (branch) es una línea de desarrollo independiente dentro del mismo proyecto. La rama principal (normalmente llamada main o master) suele contener la versión estable del software, mientras que se crean ramas nuevas para desarrollar una función o corregir un error sin tocar esa versión estable.
Cuando el trabajo de una rama está terminado y probado, se junta con la rama principal mediante una fusión (merge). Este mecanismo es clave en cualquier equipo de desarrollo, incluidos los que trabajan para la Administración, porque permite avanzar en paralelo sin bloquear el proyecto.
Un concepto que también conviene distinguir es el de conflicto de fusión: ocurre cuando dos ramas han modificado la misma parte de un archivo de formas distintas y el sistema no puede decidir automáticamente cuál de los dos cambios debe prevalecer. En ese caso hay que resolverlo a mano, eligiendo o combinando el contenido correcto.
¿Qué comandos básicos de Git conviene reconocer?
No hace falta memorizar la sintaxis exacta como si fueras a programar en el examen, pero sí reconocer para qué sirve cada uno:
-
git init: crea un repositorio nuevo en la carpeta actual. -
git clone: copia un repositorio remoto a tu equipo. -
git add: prepara los archivos modificados para el siguiente commit. -
git commit: guarda esos cambios preparados en el historial local. -
git push/git pull: sincronizan el repositorio local con el remoto. -
git branch/git merge: crean ramas y las fusionan.
¿Merece la pena estudiar Git a fondo para el TAI?
No hace falta convertirte en experto en Git para aprobar. El examen del TAI evalúa conceptos de ingeniería del software a nivel de técnico auxiliar, no de desarrollador senior: te van a preguntar qué es un repositorio, qué diferencia hay entre local y remoto, qué es una rama o para qué sirve un commit, más que la sintaxis exacta de cada comando. Aun así, entender bien el flujo de trabajo te ayuda a fijar el resto de conceptos de ingeniería del software del Bloque III, que van muy de la mano.
¿Quieres tener claro todo el Bloque III de un tirón?
Los apuntes del Bloque III cubren desarrollo de sistemas, ingeniería del software y control de versiones explicado sin tecnicismos innecesarios.
Ver Bloque III TAI por 19,99€ →Preguntas frecuentes
¿Git es lo mismo que GitHub?
No. Git es el sistema de control de versiones en sí. GitHub (como GitLab o Bitbucket) es una plataforma que aloja repositorios remotos creados con Git y añade funciones extra como gestión de incidencias o revisión de código.
¿Puedo aprobar el TAI sin haber usado Git nunca?
Sí. El examen pregunta por conceptos (qué es un repositorio, una rama, un commit), no exige experiencia previa programando ni usando estas herramientas en el día a día.
¿Qué otros sistemas de control de versiones existen además de Git?
Existen otros como Subversion (SVN) o Mercurial, pero Git es el más extendido con diferencia y el que más probablemente aparezca citado en el examen.
¿En qué bloque del temario entra exactamente el control de versiones?
Dentro del Bloque III, Desarrollo de sistemas, en el área de ingeniería del software y gestión del ciclo de vida de las aplicaciones.