Entender Git en minutos

Linux Nivel Medio 16 de may. de 2025

Git y la analogía de "El alfarero y sus creaciones"

Imagina que eres un alfarero y estás modelando un jarrón de barro. 🏺

Al trabajar con la arcilla, cada vez que haces un cambio a tu jarrón, quieres guardar una copia de ese jarrón en ese momento para no perder tu trabajo en caso de que se deforme, se agriete o se te caiga mientras lo estás modelando.

¡Git es como tener un molde mágico que guarda cada versión de tu jarrón!

Conceptos clave de Git con palabras sencillas:

  • Repositorio: Es tu taller de alfarería, donde tienes todas tus creaciones.
  • Commit: Es como tomar una foto de tu jarrón en cada etapa importante.
  • Branch (Rama): Es cuando decides probar una nueva forma sin afectar el jarrón original.
  • Merge: Es cuando guardas los cambios de un nuevo diseño con tu pieza principal.
  • Push: Es cuando muestras tu jarrón en una exposición.
  • Pull: Es cuando traes nuevas ideas de otros alfareros para mejorar tu pieza.

Simil de tareas del Alfarero y Comandos en Git:

1️⃣ Preparar el taller de alfarería (repositorio en Git):

git init

2️⃣ Preparar la arcilla e incluir las nuevas partes del jarrón (añadir archivos a Git):

git add .

3️⃣ Guardar el progreso del jarrón (commit):

git commit -m "Mi jarrón con formas modernas"

4️⃣ Ver todas las versiones guardadas:

git log --oneline

5️⃣ Probar un nuevo diseño sin afectar el original (rama):

git branch jarron_estilo_escandinavo
git checkout jarron_estilo_escandinavo

6️⃣ Unir cambios del nuevo diseño con el original:

git checkout main
git merge jarron_estilo_escandinavo

7️⃣ Exponer el jarrón al mundo (subir a internet):

git push origin main

Explicando las "Áreas" de Git

Voy a explicaros los conceptos de Working Area, Stage Area y Repository mediante el simil del taller del alfarero 🏺

Cómo ayuda Git al alfarero

Imagina que estás creando un hermoso jarrón de barro en el taller.
En cada paso, necesitas decidir qué cambios vas a aplicar al jarron, cómo apuntarlos/guardarlos y cómo organizarlos.

Aquí es donde aparecen los conceptos de las tres áreas o zonas de Git.

Working Area (Área de trabajo):

  • Es donde modelas tu jarrón. Es la mesa del alfarero, donde se hacen cambios, agregan detalles y se corrigen imperfecciones.
  • Ejemplo: Probamos diferentes diseños de asas o pintamos nuevas decoraciones al jarrón.

Stage Area (Área de preparación):

  • Cuando se tiene un diseño que gusta, se prepara la pieza para el horno. Es decir, se decide qué cambios son definitivos y cuales están listos para ser guardados.
  • Ejemplo: De todas las pruebas que hiciste, eliges los diseños de asas que más te gustan y los dejas listos para cocer.

Comando en Git:

git add .

Esto indica que los cambios seleccionados serán guardados en el siguiente paso.

Repository (Repositorio o zona de almacenamiento):

  • Cuando se cuece el jarrón en el horno, ese diseño queda guardado para siempre, ya no se puede cambiar la pieza sin hacer una nueva versión.
  • Ejemplo: Ahora el jarrón tiene asas y está cocido. Si en el futuro decides modificarlo, harás una nueva versión en arcilla y repetirás el proceso.

Comando en Git:

git commit -m "Guardé el diseño final del jarrón con asas"

Esto toma una "foto" del estado actual y la guarda en la historia del proyecto.

🏺 Ejemplo con el trabajo del alfarero:

1️⃣ Área de trabajo: Se modela y prueban distintos diseños.
2️⃣ Área de preparación: Se eliges el diseño final y se prepara para cocer.
3️⃣ Repositorio: Se cuece el jarrón y se guarda su diseño en la historia del taller.

De esta forma Git permite que el alfarero pueda guardar versiones, probar nuevas ideas y recuperar cambios antiguos sin perder trabajo.

Como resumen una imagen ilustración que muestra cada fase del proceso: el alfarero modelando la arcilla, tomando una "foto" de su jarrón y finalmente cociéndolo en el horno, representando las diferentes áreas de Git.

Ilustración de la analogía del alfarero y las 3 Áreas de Git

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux