Un sistema de control de versiones te permite guardar "fotografías" del estado de tu proyecto en ese instante del tiempo, dándote la capacidad de restaurar ese estado en cualquier momento. Es simple: tomas una de estás "fotos", trabajas en tu proyecto y si algo sale mal puedes volver a atrás, a algún punto donde todo funcionaba. De esta forma continuarás trabajando y podrás dormir tranquilo en las noches sabiendo que tu tienes respaldos de tu código en momentos del tiempo donde todo funciona.
Estas son acciones comunes para varios sistemas de control de versiones, pero por alguna razón Git es el favorito de muchos. Seguro te preguntarás: ¿por qué se volvió tan popular? Bien, Git vino a traer una serie de características novedosas que hacen la vida de todos los desarrolladores más fácil.
Distribuido, no centralizado
La mayoría de los sistemas de control de versiones utilizan un servidor centralizado para guardar todos los cambios y actualizaciones. Esta característica es maravillosa porque permite que personas en diferentes partes del mundo puedan trabajar sobre un mismo proyecto, sin embargo está fuertemente atada a la conexión a Internet para funcionar, de otra manera los cambios nunca podrán reflejarse en el servidor central.
Git se presenta como un sistema distribuido, en el que todos los nodos manejan la información en su totalidad y por lo tanto pueden actuar de cliente o servidor en cualquier momento, es decir, se elimina el concepto de "centralizado". Esto se lo logra gracias a que cada vez que sincronizas los cambios con el repositorio remoto Git, te guarda una copia entera de los datos con toda la estructura y los archivos necesarios. Así ya no es necesario salir a Internet para consultar los cambios históricos sobre un archivo o para ver quién fue la última persona que lo editó, todo se hace directamente sobre tu copia local y luego, cuando lo consideres oportuno, puedes enviar esos cambios hacia el repositorio remoto.
Fotografías, no diferencias
Los sistemas de control de versiones más populares almacenan sus datos como un conjunto de diferencias respecto a la versión original de un archivo, en otras palabras, van guardando solamente una lista de cambios a lo largo del tiempo sobre la versión inicial.
Git replantea esta metodología y se acerca más a lo que sería el funcionamiento de un sistema de archivos, guardando a lo largo del tiempo una fotografía nueva que encierra el estado actual del archivo con todos sus cambios. Sin embargo, Git es bastante inteligente porque cuando un archivo no cambia, en lugar de guardar la misma fotografía varias veces, guarda una referencia a esa fotografía. De esta forma se optimizan los recursos del sistema.
Comprueba, comprueba, comprueba
Git comprueba todo, así que es imposible que un archivo se corrompa o se pierda sin que lo sepa. Estás verificaciones se hacen mediante una suma de comprobación (checksum) conocida como SHA-1 y están integradas en lo más profundo de su ser. Los cambios, los archivos, casi todo es guardado en Git no por nombre, sino por la suma de comprobación de sus contenidos.
Es rápido (y furioso)
Como mencionamos más arriba, Git te permite trabajar todo localmente gracias a que es un sistema distribuido. No necesitas salir a Internet para consultar los cambios históricos y mucho menos para confirmar los cambios más recientes que has realizado, todo se realiza contra tu base de datos local. Esto permite que puedas trabajar en el tren camino a casa o mientas cruzas el Atlántico en un avión, además agiliza todas las operaciones y permite que cosas el branching, tan costosas en otros sistemas, con Git sean cuestión de milisegundos.
Añadir pero no borrar
Otro de los principios fundamentales de Git es el de no remover información. Cuando introduces un cambio en tu proyecto simplemente añade más información al repositorio, lo que permite que sea muy difícil estropear algo por error o que no puedas deshacer esas modificaciones. Como todos los sistemas de control de versiones, con Git puedes perder información que aún no hayas confirmado, pero una vez hecho este paso, todo quedará guardado y podrás deshacerlo con toda seguridad.
De alguna manera Git ha revolucionado el mundo del desarrollo de software. Si bien presenta un cambio de paradigma respecto a las soluciones más comunes, sus prestaciones valen la pena el intento. Además, es Software Libre distribuido bajo los términos de la Licencia Pública General GNU versión 2. Y tu ¿ya estás usando Git?