¿Qué Es Git? La Definitiva Guía Introductoria A Git

¿Qué es Git? La definitiva guía introductoria a Git

Git es una herramienta esencial para desarrolladores de software y otros profesionales para almacenar código fuente y archivos de proyectos, mientras se realiza un seguimiento completo de la historia del proyecto y se permite que múltiples personas colaboren en los mismos archivos sin preocuparse por conflictos.

En este artículo, exploraremos qué es Git, qué puede hacer y cómo comenzar a usarlo. También discutiremos por qué Git se ha convertido en una parte esencial de los procesos de desarrollo modernos y qué lo hace tan poderoso.

Así que vamos a sumergirnos en el tema.


¿Qué Es Un Sistema De Control De Versiones?

Un sistema de control de versiones, o sistema de versionado de código, es como una biblioteca donde puedes almacenar diferentes versiones de tu trabajo. Lo usas para hacer un seguimiento de todos los cambios realizados en un proyecto y para saber cuál es la versión más actualizada. ¡Es como un gran árbol genealógico que muestra quién hizo qué y cuándo!


¿Qué Es Git Y Por Qué Se Utiliza?

Git es un sistema de control de versiones de código abierto que realiza un seguimiento de los cambios en los archivos de código a lo largo del tiempo. Permite a los desarrolladores hacer un seguimiento de lo que ha cambiado, cuándo y por quién. Para lograrlo, Git también ayuda a los desarrolladores a trabajar en equipos en proyectos al manejar la resolución de conflictos y fusionar diferentes versiones del mismo código base.

Por naturaleza, Git es un sistema de control de versiones distribuido, lo que significa que cada usuario tiene una copia local de todo el repositorio (código fuente e historial del proyecto). Esto lo hace rápido y permite mucha flexibilidad en cómo diferentes personas trabajan en el mismo código base.


Beneficios De Usar Git

Git es una herramienta poderosa que puede ayudar a cualquier desarrollador a trabajar de manera más eficiente y colaborativa. Aquí están algunos de los beneficios clave:

  • Fácil seguimiento de los cambios: Git facilita el seguimiento de lo que ha cambiado en el código base, cuándo y por quién. Esto permite a los equipos identificar rápidamente qué debe hacerse y quién es responsable de qué.

  • Control de versiones: Git facilita la tarea de mantener múltiples versiones del mismo código base para que los equipos puedan experimentar sin temor a estropear el trabajo existente.

  • Flexibilidad y escalabilidad: Git es distribuido, lo que lo hace más flexible que muchos otros sistemas de control de versiones. También permite escalar a medida que aumenta el tamaño del equipo.

  • Colaboración: Git permite a los desarrolladores colaborar de manera más eficiente, permitiéndoles compartir fácilmente sus cambios y fusionar rápidamente el trabajo de los demás.


¿Quienes Usan Git?

Git es el sistema de control de versiones más popular con diferencia. Según la encuesta de Stack Overflow de 2022 , casi el 94% de los encuestados afirmaron usar Git. Desde grandes empresas como Google, Meta, Netflix, etc., hasta empresas de tamaño mediano y startups, todas utilizan Git de una forma u otra.

También es conocido principalmente por su uso en proyectos de código abierto. La mayoría de los desarrolladores utilizan Git para almacenar sus portfolios o proyectos personales, todo gracias a servicios como GitHub que proporcionan Git gratuito para proyectos de código abierto.


Instalando Git

Ahora que sabes qué es Git y lo que puede hacer, es posible que te estés preguntando cómo empezar. Afortunadamente, empezar con Git es relativamente fácil, incluso para principiantes.

Hay muchos recursos disponibles en línea que ofrecen tutoriales y consejos útiles sobre cómo usar Git. Además, diversas herramientas, como clientes GUI e interfaces de línea de comandos, pueden facilitar el uso de Git.

Entonces, ¿qué estás esperando? ¡Prueba Git y descubre lo poderoso y eficiente que es! ¡No te arrepentirás!

A continuación, cubriremos cómo instalar Git en cada sistema operativo popular.

Instalar Git en MacOS

Si eres un usuario de Mac como yo, recomiendo dos opciones para instalar Git. Primero, la que yo uso es usando las herramientas de XCode, y la segunda opción es usando Homebrew. La principal diferencia entre las dos es la versión de Git, Homebrew generalmente tendría una versión de Git más actualizada, pero ambas son excelentes opciones.

Antes de instalar Git, asegúrate de que no esté instalado ejecutando el siguiente comando en tu terminal:

git --version

Si Git no está instalado, ejecutar cualquier comando de Git puede solicitarle que instale Git directamente usando la opción de herramientas de XCode. Si ese es el caso, acepta y listo.

Si quieres instalar Git usando las herramientas de XCode, ejecuta lo siguiente:

xcode-select --install

Con Homebrew:

brew install git

Instalar Git en Linux

Puedes instalar Git simplemente instalando un paquete usando tu gestor de paquetes favorito.

Si estás en una distribución basada en Debian (como Mint, Ubuntu, etc.), puedes instalar Git ejecutando el siguiente comando:

sudo apt-get install git

Para distros basadas en Arch:

pacman -S git

Instalar Git en Windows

La mejor manera de instalar Git en Windows es usar el instalador visual . Luego puedes seguir las instrucciones del asistente y tener Git en funcionamiento en poco tiempo.


Configurar Tu Usuario De Git

Una vez que hayas instalado Git, es hora de configurarlo. Necesitarás configurar tu nombre de usuario y dirección de correo electrónico para que Git pueda identificar correctamente quién realizó qué cambios.

Para hacer esto, ejecuta los siguientes dos comandos:

git config --global user.name "<your-name>" 
git config --global user.email "<your-email-address>"

Conceptos Básicos De Git

Ahora que tienes Git instalado y configurado, veamos qué hace y cómo funciona.

Hay dos formas principales de configurar un repositorio local de Git, mediante la inicialización de un nuevo repositorio o mediante la clonación de un repositorio existente desde una fuente remota.

Inicializar un repositorio de Git

Si quieres comenzar a realizar seguimiento de los cambios en un nuevo proyecto o directorio, puedes inicializar un repositorio local de Git.

Esto creará los archivos y carpetas necesarios para el repositorio para que puedas empezar a realizar commit de tus cambios.

Para hacer esto, ejecuta el siguiente comando:

git init 

Ten en cuenta que en este punto, todos los cambios solo se están registrando localmente. No se requiere ningún servidor.

Clonar un repositorio remoto

Si quieres trabajar en un proyecto existente alojado en una instancia remota de Git, simplemente puedes “clonar” el proyecto en una carpeta local. Al clonar un repositorio remoto, se descargará el código fuente completo y todo el historial de commits del proyecto.

Para clonar un repositorio, ejecuta el siguiente comando:

git clone <URL> 

Una vez que tengas una copia local del repositorio remoto, puedes trabajar en él y realizar cualquier cambio localmente. Luego puedes subir tus cambios de vuelta al servidor remoto.

Actualizar mi copia con los cambios hechos en el repositorio remoto

Git pull

Git pull

Si ya has clonado un repositorio remoto, puedes obtener fácilmente cualquier cambio nuevo del servidor remoto. Esto descargará todos los commits que se hayan hecho desde la última vez que hiciste un pull y los fusionará con tu copia local del repositorio.

Para hacer esto, ejecuta el siguiente comando:

git pull 

Realizando un commit de cambios.

Git no guarda automáticamente todos los cambios en su historial, y por buenas razones, ya que no quieres hacer un seguimiento de cada palabra que agregas a un archivo, o su historial se volvería rápidamente abrumador para analizar. En cambio, Git se basa en el concepto de “commit”, que guarda todos los cambios locales que deseas guardar en el historial del repositorio de Git.

Debido a que podemos agrupar los cambios en diferentes archivos y también tenemos la opción de ingresar un mensaje para cada commit , podemos asegurarnos de que nuestro historial de commits sea lógico y fácil de entender.

Para realizar un commit, ejecuta el siguiente comando:

git add . 
git commit -m "My first commit"

Git development environment sections

Git development environment sections

Con el comando git add, puedes incorporar las modificaciones de un archivo en tu directorio de trabajo al área de preparación. Básicamente, notifica a Git de cualquier cambio que deba incluirse en el siguiente commit. A pesar de esto, no ocurrirá ninguna alteración importante hasta que ejecutes git commit; de ahí que git add sea simplemente un paso intermedio para agregar posibles actualizaciones a consideración. Para el comando git add, también debes especificar qué archivos deseas agregar o usar el símbolo . para agregar todos los archivos modificados.

El comando git commit es el que realmente registra los cambios que has realizado. Con este comando, también agregarás una descripción de lo que se hizo con la adición de -m seguido de un mensaje. Esto permite que otros colaboradores sepan qué tipo de modificaciones se incluyeron en este commit.

Es importante tener en cuenta que incluso cuando haces commit de los cambios, esos cambios se rastrean localmente y nada se altera en el servidor remoto hasta que ejecutas git push.

Subiendo los cambios a un repositorio remoto.

Git push

Git push

Una vez que has hecho commit de tus cambios en un repositorio local, puedes enviarlos a un repositorio remoto. Esto es lo que permite a los colaboradores trabajar en el mismo proyecto y mantenerse actualizados sobre el progreso de cada uno.

Para enviar tus cambios, ejecuta el siguiente comando:

git push  <remote-name> <branch-name>

El remote-name generalmente se establece con el nombre del repositorio del que hiciste la clonación. Si usas el comando git clone, esto se establecerá automáticamente. El nombre de la rama branch-name se refiere a la rama del repositorio remoto a la que deseas enviar tus cambios.

¿Qué ha cambiado desde mi último commit?

Puedes usar git diff para comprobar qué ha cambiado desde el último commit. Este comando compara la versión actual de tus archivos con lo que está almacenado en el repositorio, permitiéndote ver qué se ha modificado y qué no.

git diff 

La salida de git diff mostrará cualquier adición o eliminación desde tu último commit. Si un archivo cambia ligeramente, también mostrará lo que se agregó/eliminó en cada línea.

Almacenando cambios

Git también tiene la capacidad de almacenar (stash) los cambios. Esto te permite guardar tu estado de trabajo actual sin hacer commit. Puede ser utilizado si necesitas cambiar rápidamente de rama o si necesitas cambiar el enfoque de tu trabajo, pero aún no estás listo para hacer commit.

Muchos desarrolladores nuevos no conocen esta útil función. En su lugar, harían commit de un trabajo incompleto, lo que puede ser tedioso en proyectos grandes o proyectos en los que el historial de Git debe ser lo más limpio posible.

Para almacenar los cambios, usa el siguiente comando:

git stash 

Este comando guardará los cambios actuales en tu directorio de trabajo y lo restablecerá al último commit realizado. Para restaurar los cambios, puedes usar git stash pop o git stash apply si deseas conservar el cambio almacenado.


Trabajando Con Ramas (Branches)

Git branching model

Git branching model

El branching es lo que hace que la gestión de la versión del código sea más poderosa. En lugar de un enfoque lineal, como el que hemos estado discutiendo hasta ahora, las ramas de Git permiten a los desarrolladores crear nuevas “versiones” de su base de código y realizar un seguimiento de los cambios de forma independiente.

Por ejemplo, supongamos que estás trabajando en una rama de característica llamada my-feature. Esta rama se utilizará para realizar un seguimiento de todos los cambios relacionados con esa característica en particular. De esta manera, puedes mantener tu base de código principal (generalmente denominada main o master) separada de lo que se está haciendo en la rama de características.

Crear una nueva rama es fácil; solo escribe este comando:

git checkout -b my-feature

Esto creará una nueva rama llamada “my-feature” y cambiará a ella. Una vez que hayas realizado todos los cambios que necesites, puedes simplemente hacer commit de ellos y luego volver a cambiar a la rama principal usando git checkout main.

Desde aquí, puedes fusionar tu rama de características en la rama principal con git merge mi-característica, o puedes crear una solicitud de extracción (Pull Request), que es lo que discutiremos a continuación.

Si una característica se descarta o ya no necesitas tu rama, puedes eliminarla ejecutando:

git branch -D <branch_name>

Finalmente, para cambiar de una rama a otra, puedes ejecutar lo siguiente:

git checkout <branch_name>

Fusión de ramas en Git

Git merge

Git merge

Supongamos que has realizado algunos cambios en una nueva rama y deseas integrarlos con tu rama principal (master). Puedes hacerlo realizando una operación de fusión (merge).

git merge <branch_name>

En palabras simples, este comando se utiliza para combinar dos ramas. Si un archivo específico se cambia en ambas ramas, entonces creará un conflicto de fusión. En ese caso, debes buscar manualmente en el archivo y seleccionar el cambio que deseas y eliminar el otro.

Aunque la fusión se puede hacer a través de la línea de comandos, es más común hacerlo con el uso de solicitudes de extracción (pull requests) e interfaces visuales.

Pull Requests

Una solicitud de extracción (Pull Request o PR) es lo que utilizan los desarrolladores para sugerir cambios en la base de código de un proyecto. Permite que otros colaboradores revisen los cambios propuestos y los acepten o proporcionen comentarios sobre cómo modificarlos.

Los servicios de Git como GitHub y GitLab hacen que este proceso sea más fácil, proporcionando una interfaz basada en web para crear, discutir y fusionar las solicitudes de extracción.


Funciones Avanzadas De Git.

Hasta ahora, hemos cubierto las características más esenciales de Git, las cuales utilizarás en tu vida diaria como desarrollador. Pero hay muchas más cosas que puedes hacer con Git. Dado que las características avanzadas están un poco fuera del alcance de esta guía, he creado dos artículos más que puedes revisar para obtener más información sobre las características avanzadas de Git.


Preguntas Frecuentes


Conclusión

Git es una herramienta esencial para cualquier desarrollador y dominarla puede ayudar mucho en tu trabajo. En esta publicación, repasamos qué es Git y qué hace, cómo configurarlo en tu máquina y cómo utilizar los comandos más comunes de Git. También discutimos algunas características más avanzadas de Git, como el almacenamiento temporal de cambios y trabajar con ramas.

Espero que esta guía te haya ayudado a comprender mejor qué es Git y cómo usarlo. Finalmente, asegúrate de revisar los artículos adicionales que vinculamos en esta publicación si deseas aprender más sobre los conceptos avanzados de Git.

¡Feliz codificación!

Si te gusta el contenido, por favor apoya mi trabajo!

Juan Cruz Martinez - Author @ Live Code Stream

Juan Cruz Martinez

¡Hola!

Soy Juan Cruz Martinez, el fundador de LiveCodeStream.dev. Me encanta programar y creo en el poder de la programación no solo para construir un mundo mejor, sino para hacer que TU vida sea mejor.

Fundé LiveCodeStream.dev porque quería ayudarte a aprender a programar, construir una mejor carrera y, en última instancia, crear una vida mejor. Eso me sucedió hace más de una década cuando comencé a programar, y le sucede a decenas de miles de personas a diario. Quiero que TÚ te unas a esa revolución.

No importa cómo lo llames, escribir código, programación, desarrollo de software o cualquier otra cosa, las habilidades involucradas están en una demanda cada vez mayor. Y ya sea que quieras incursionar en el desarrollo de sitios web, diseño de juegos, desarrollo de blockchain o cualquier otra cosa, quiero ayudarte.