¿Qué es el control de versiones?
Marzo de 2006. Son las 2 de la mañana y estoy en tercero de Informática. Mañana por la mañana presento mi primer proyecto freelance a un cliente importante.
Llevo 14 horas programando, así que ya no recuerdo muy bien cuál de mis cambios ha provocado esto.
Lo único que sé es que la capa de datos de la app funcionaba ayer (¿o fue anteayer?). Ahora, en vez de precios de acciones, tengo un montón de errores en pantalla.
He intentado deshacer los cambios que han provocado este desastre, pero... es 2006, así que mi IDE solo puede deshacer unos 5 minutos de todo el código cutre que he escrito esta noche.
Tengo la mano dormida de pulsar Ctrl+Z tantas veces. Si ahora pulso sin querer la tecla equivocada, no podré rehacer los cambios y perderé todavía más trabajo.
...a menos que antes de eso mi PC con Windows 98 se cuelgue porque sí y corrompa todos los archivos abiertos.
Estoy desesperado. Mi única esperanza es la copia de seguridad que hice ayer... ¿o fue la semana pasada? ¿La guardé en una memoria USB? ¿O quizá en un CD?
Además, ninguna copia incluye el código más reciente, así que no puedo averiguar qué cambios provocaron el problema.
Ah, es el mismo disquete 💾 en el que guardé la copia de seguridad ayer. ¡Es un milagro!
Un momento, primero tengo que extraer el archivo comprimido del disquete.
¡No puedo recuperar mis archivos de la copia de seguridad! ¿Habrá corrompido el disquete el imán del altavoz?
Pues nada. Lo tengo muy crudo.
Ahora me río al recordarlo, pero en aquel momento estaba hundido. Al final encontré la causa del problema en mi código y la arreglé.
Por desgracia, lo conseguí demasiado tarde. No cumplí el plazo y perdí al cliente. Pero aprendí la lección por las malas.
Un es un programa que registra los cambios en los archivos a lo largo del tiempo. Puedes restaurar una versión anterior, hacer que un archivo o todo el proyecto vuelvan a un estado previo, comparar la versión actual con otra más antigua, ver quién introdujo cambios y cuándo, y mucho más.
Hoy el control de versiones está integrado de forma casi invisible en muchas apps. Por ejemplo, cuando editas un documento en Google Docs, puedes ver el historial de cambios y restaurar el documento a una versión anterior. Pasa lo mismo con los archivos en Dropbox y en muchos otros servicios. En estas apps, el versionado es automático y no tienes que pensar en ello.
Pero también existen sistemas de control de versiones independientes, como Git, Mercurial o Subversion, que te permiten controlar el proceso de versionado de forma más directa y detallada.
Estos sistemas son especialmente útiles en proyectos complejos, como software, sitios web o conjuntos de datos. Los proyectos grandes tienen muchas piezas que dependen unas de otras. A menudo, el código solo funciona con versiones concretas de bibliotecas u otros componentes, y actualizar una parte puede romper el resto. Ahí es donde los sistemas de control de versiones marcan de verdad la diferencia.
Haz el curso como se pensó: avanza poco a poco y en orden, sin distracciones, mientras desbloqueas nuevas entradas de Gitopedia. Cuando quieras, continúa practicando con Git de verdad en VS Code, Cursor o Antigravity IDE.
pero requiere iniciar sesión