Qué es Git y Cómo Instalarlo
Tags: git, beginners, tutorial, spanish
Published: 2022-12-07 15:51:29

Este material es parte del Curso de Git desde cero que se encuentra en Udemy y es totalmente gratuito. No obstante, el artículo puede leerse independientemente del curso y sin dudas podrá resolver las dudas iniciales de cualquier persona que este empezando con Git. Para más información haz click [aquí](https://www.udemy.com/instructor/courses/).

## Escuché hablar de Git, lo piden en propuestas laborales y se habla mucho de él, pero qué es?
Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente. Su propósito es llevar registro de los cambios en archivos de computadora y coordinar el trabajo que varias personas realizan sobre archivos compartidos.

## Qué es un software de control de versiones?
El control de versiones es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante.

## Hay alguna explicación para simples mortales?
Git en pocas palabras **es un comparador de textos**. Detecta cada linea de nuestro código para buscar diferencias con respecto a lo que ya tenemos publicado en nuestro repositorio. Es importante entender que estamos “rascando la superficie” dado que Git es muy potente y tiene muchas funcionalidades. Pero en el sentido más práctico, es eso.

## Entonces puedo usar Git con cualquier texto?
En mi experiencia he visto como usaban Git para trabajar con documentos Word y Excel, aunque no lo recomiendo. Los documentos de este estilo tienen manejos complejos internos en su sistema, como archivos temporales que solo nos servirán para uso interno, por ejemplo el archivo de back-up de Word. El mejor uso de Git es para programar, que de hecho fue el propósito inicial de Linus al crearlo.

## Entiendo el concepto! Pero no veo la utilidad…
Decir que Git **compara código** es solo el comienzo. Podremos mantener versiones o snapshots de nuestros repositorios, lo cual nos permite volver cambios atrás si nos equivocamos en algo. Por ejemplo, si tenemos este código sencillo en Javascript y HTML:

```html
<div class="hcb_wrap">
<pre class="prism undefined-numbers lang-js" data-lang="JavaScript"><code>console.log("Soy un código sencillo :D");</code></pre>
</div>
```

Y luego hacemos un cambio y lo guardamos, perderemos los cambios anteriores. Muchos dirán “Control-Z!”, pero que tal si hicieron el cambio y cerraron el IDE o editor de textos que estén usando? El stack de deshacer y rehacer se va a limpiar, y adiós cambios.

En cambio con Git podremos mantener un historial de cambios determinados por nosotros a traves de **commits** (en el curso lo detallamos) y podemos volver a tantas versiones como deseemos.

## Entonces Git me sirve como back-up?
Si y no. Nos permite almacenar nuestro proyecto en la nube a través de GitHub o Bitbucket entre otros, o mantenerlo local en nuestra PC. Pero la utilidad mas importante es el trabajo colaborativo entre desarrolladores. Al tener un repositorio, vamos a poder subir los cambios y mantener un control de versionado. Pero a la vez otros desarrolladores pueden bajar esos cambios y mantener el proyecto actualizado. Entonces cuando nuestro compañero implementa una funcionalidad nueva y actualice el repositorio, nosotros vamos a poder bajar dichos cambios y trabajar con la última versión.

## Dónde puedo descargar Git, es pago?
Git es Open Source (Código Abierto) y gratuito. No hace falta pagar una licencia ni nada por el estilo. Se puede descargar desde su [página oficial](https://git-scm.com/). En el curso vamos a recorrer el instalador, pero no es nada complicado. Para utilizarlo simplemente podemos usar nuestra consola o la que Git nos trae al instalarla (Git Bash).

## Puedo usar Git con cualquier lenguaje de programación o framework?
Efectivamente, pero es importante tener en cuenta que cada proyecto dependiendo de su tecnología va a tener una configuración determinada. Esto implica que existen ciertos archivos locales que se deben ignorar y no ser commiteados, como en el caso de la carpeta node_modules en proyectos de NodeJS. Hablaremos más a fondo de ello en el curso.

Espero que este artículo les haya sido de gran utilidad! Es importante recordar que se trata de una introducción que intenta abarcar el concepto sin meterse a fondo para servir de material inicial al Curso de Git.

Nos vemos en el próximo artículo!