Hoy vamos a hablar acerca de qué es GIT, el popular sistema de control de versiones.
Grabé este video con mucho dolor, mi mano me estaba matando, pero espero que lo disfruten.
¿Qué es un sistema de control de versiones?
Es un sistema que permite guardar versiones de un trabajo y poder navegar entre estas versiones y ver los cambios de una a otra versión.
¿Qué es GIT?
GIT es un sistema de control de versiones creado por Linux Torvalds, el creador de linux, y que sirve para el manejo de versiones de archivos de texto teniendo como gran ventaja facilitar el trabajo colaborativo.
¿Cómo funciona GIT?
Con GIT mantienes todo en local, es decir, en tu computadora se guarda la historia completa de los cambios de los archivos que tu quieras.
Esta historia se basa en “diferentes puntos en la historia”, como cuando ves una línea de tiempo y tiene bolitas para cada año, pues lo mismo, pero les llamamos “commits”.
El commit y su hash
Entonces la versión, o bolita en la historia, se llama commit.
Cada uno de los commits se identifica con una cadena única que la llamamos hash del commit.
Este identificador nos permitirá poder navegar entre los diferentes commits en el pasado de la historia.
¿Cuándo hacer un commit?
Git por automático no guarda nada en la historia, es decir, cada que haces algún cambio en tus archivos debes decidir si quieres guardar ese o esos cambios en la historia.
GIT para el trabajo colaborativo
Una de las grandes ventajas de GIT es que permite el trabajo colaborativo, lo que permite que varias personas tengan una copia completa de la historia que tu tienes en tu computadora.
Los servidores remotos
Para facilitar compartir esa copia entre diferentes colaboradores se require tener un servidor de GIT, que puedes montar en tu computadora o puedes usar algun servicio “en la nube”.
Entre los servidores de GIT mas conocidos se tienen Github, Gitlab y Bitbucket.
Es muy importante dejar claro que no son la misma cosa que GIT.
Estos son servidores de GIT pero con la ventaja de una interfaz gráfica y muchas otras monadas.
Cuando quieres compartir tu historia
Cuando has hecho cambios y has hecho tus commits en tu local, es importante que puedas compartir estos cambios con el resto del equipo y para eso, debes “subir” tus cambios al servidor.
A esto le llamamos “hacer push”, es decir, empujar tus cambios de tu local al servidor remoto.
Cuando quieres obtener los cambios de los demás
Cuando quieres obtener la historia de los demas, y además fusionarla con tu historia actual, necesitas “jalar” los cambios del servidor.
A esto le llamamos “hacer pull”, es decir, jalar del servidor remoto la historia y GIT hace magia buscando la mejor manera de fusionar esos cambios con los tuyos.
La magia del merge
Cuando GIT fusiona historias, lo que hace se llama “merge” y parece magia, peroNO, en realidad hay varias reglas para casos como cuando la misma línea fue editada por dos personas.
Se puede configurar el merge para que siempre respete tus cambios, o los que vienen de alguien mas, o que mejor te pregunte que hacer jejeje (esta es la configuración default).
En resumen
La gran ventaja de trabajar con GIT es que puedes revisar la historia, encontrar errores, corregirlos de manera mas fácil, y además, facilitar el trabajo en equipo.
Si quieres aprender mas de GIT puedes ver estos videos de algunas clases en vivo que tengo grabados.