Blog /

¿Qué es Git?

Git en resumidas cuentas, y como la mayoría de personas lo define es un sistema de control de versiones, actualmente de los más populares y el más usado.


Es un Software que registra todo el historial de cambios que se le van realizando a un proyecto.


Todas esas modificaciones, todos esos avances que se han ido agregando a través del tiempo al código este proyecto, sea solo nuestro o en conjunto con un equipo (por cuestiones de mejora y optimización, o simplemente para agregar algo nuevo); todos esos cambios se guardan en Git.


En un inicio cuando creamos un nuevo proyecto con solo unas pocas líneas de código, y a esto lo guardamos utilizando Git; se convierte automáticamente en la primera versión de nuestro proyecto.

A medida agregamos o modificamos algo, como mencioné anteriormente, y volvemos a guardar, pasaría a ser una nueva versión actualizada, y así sucesivamente.

Cada uno de estos cambios que se van registrando se denominan commits, y uno por uno requieren de un nombre.

La idea es que se deje asentado el tipo de modificación que se ha realizado. Esto es algo importante, sobre todo para que ese registro de alteraciones sea medianamente fácil de entender, y más si se está en un equipo en el que son varias las personas trabajando y en el que todas buscan coordinar dichos cambios (como sucede en la mayoría de los casos), en el que claramente se requieren cuestiones de orden y organización para un importante entendimiento mutuo, cosa que lleva a que todos quedemos felices y comamos perdices (?


Otra cosa muy importante es que Git, al tener bien guardaditas todas las versiones por las que ha pasado nuestro código, en el hipotético caso de que se haya generado algún error en este, nos permite volver en el tiempo en el historial de cambios, y saber en donde se encuentra ese error (cual fue el commit que incluyó el error).


Así simplemente podemos volver a cierta versión mediante un comando, y solucionarlo sin necesidad de hacer una súper búsqueda en nuestro código.

¿Qué es un repositorio?

Ahora bien, estos proyectos que nosotros en un principio creamos a manera de directorios, es decir, carpetas, mediante la terminal, requieren transformarse en repositorios para ser guardados y administrados con Git.

Un repositorio es un lugar en donde se almacena código, y mediante este es que vamos a tener acceso a gestionar cambios en nuestro proyecto.

Comandos de Git

Git funciona con comandos, tanto para creación como para modificación y eliminación, en este caso vamos a pasar a mostrar los más básicos:

👉 git init: Crea en nuestro proyecto una carpeta oculta llamada .git donde se van a guardar todos nuestros cambios.

👉 git status: Nos muestra los archivos modificados, borrados y creados. También nos dice cuales se encuentran en stage, commited y en push

👉 git add [archivo] (stage): Agrega el archivo que apuntemos al stage (git comenzará a darle seguimiento a nuestro archivo).

👉 git commit: Compromete los cambios que realizamos. El commit crea un captura del momento en el que se encuentra el código.

👉 git log (flags —oneline y —graph): Nos muestra nuestros cambios (en formato commits). Acá encontramos muchos datos como autor, fecha, comentario, id del commit, etc.

Podemos usar los flags (argumentos extra para darle un extra al comando) para visualizarlo de una forma más sencilla:

git log --oneline: Nos muestra los cambios de una forma resumida indicandonós el id del commit y el comentario.

git log --graph: Nos agrega a nuestros commits el arbol de cambios de una forma gráfica. es una buena forma de ver de qué branch vienen los cambios.

¿Cómo se guardan mis archivos en Git?

Cuando agregamos a stage (al seguimiento) un archivo en git, Git crea una carpeta llamada objects en .git que guardará una copia hasheada de nuestros archivos.

Esto significa que cada archivo tendrá un objeto con el contenido del archivo codificado y comprimido. Estos archivos se ven de esta forma:

4716ca912495c805b94a88ef6dc3fb4aff46bf3c

Este archivo se guarda en una carpeta con los dos primeros dígitos del hash. Este hash es una forma de comprimir el contenido del archivo mediante un algoritmo.

Los dos primeros digitos con los que se creó la carpeta se mantendrán en los cambios que hagamos, para identificar el archivo. y el resto del hash se irá modificando poco a poco reflejando cada cambio.

Cada vez que hacemos un cambio (y lo comprometemos/commiteamos), dentro de la carpeta se crea otro archivo con los cambios generados hasheados y con la metadata (fecha de commit, autor, mail, etc).

Cada commit crea un nuevo hash que comprime todos los hashes de últimos cambios que hicimos y se ven de una forma similar a la que se ve el anterior hash.

Los primeros 6 digitos son irrepetibles, por lo cual son importantes para identificar cada commit y poder usarlos para “viajar en el tiempo” de nuestros cambios.

Conocé más sobre Git en este video de Aprendé a programar:

Estudia

Programación

Desde cero, online y a tu ritmo.