En esta sección, aprenderás los términos fundamentales de Git que te ayudarán a entender cómo funciona este sistema de control de versiones. Familiarizarte con esta terminología es crucial para seguir adelante con el curso y trabajar eficientemente con Git.

Conceptos Clave

  1. Repositorio (Repository)

Un repositorio es un espacio de almacenamiento donde Git guarda todos los archivos y el historial de cambios de un proyecto. Puede ser local (en tu máquina) o remoto (en un servidor).

  1. Confirmación (Commit)

Una confirmación es una instantánea de los cambios en el proyecto. Cada commit tiene un identificador único (hash) y un mensaje descriptivo que explica los cambios realizados.

  1. Ramas (Branches)

Las ramas son versiones paralelas del repositorio. La rama principal se llama main o master, y puedes crear otras ramas para trabajar en nuevas características o correcciones sin afectar la rama principal.

  1. Fusión (Merge)

La fusión es el proceso de integrar cambios de una rama a otra. Es común fusionar una rama de características con la rama principal una vez que el trabajo está completo.

  1. Conflicto de Fusión (Merge Conflict)

Un conflicto de fusión ocurre cuando Git no puede automáticamente resolver diferencias entre dos ramas. Requiere intervención manual para resolver los conflictos.

  1. Área de Preparación (Staging Area)

El área de preparación es un espacio donde se colocan los cambios antes de confirmarlos. Permite seleccionar qué cambios se incluirán en la próxima confirmación.

  1. Índice (Index)

El índice es otro término para el área de preparación. Es una estructura de datos que guarda información sobre los archivos que se van a confirmar.

  1. Repositorio Remoto (Remote Repository)

Un repositorio remoto es una versión del repositorio que está alojada en un servidor. Permite la colaboración entre múltiples desarrolladores.

  1. Clonar (Clone)

Clonar es el proceso de crear una copia local de un repositorio remoto. Esto incluye todos los archivos y el historial de cambios.

  1. Extraer (Pull)

Extraer es el proceso de obtener y fusionar cambios desde un repositorio remoto a tu repositorio local.

  1. Empujar (Push)

Empujar es el proceso de enviar tus confirmaciones locales a un repositorio remoto.

  1. Fetch

Fetch es el proceso de obtener los cambios desde un repositorio remoto sin fusionarlos automáticamente en tu rama actual.

  1. Checkout

Checkout es el proceso de cambiar de una rama a otra o de restaurar archivos a un estado anterior.

  1. HEAD

HEAD es un puntero que indica la rama o commit actual en el que estás trabajando.

  1. Tag

Un tag es una referencia que apunta a un commit específico. Se usa comúnmente para marcar versiones de lanzamiento.

Ejemplo Práctico

A continuación, se muestra un ejemplo práctico que ilustra algunos de estos conceptos:

# Inicializar un nuevo repositorio
git init

# Crear un archivo y añadirlo al área de preparación
echo "Hello, Git!" > hello.txt
git add hello.txt

# Confirmar los cambios
git commit -m "Initial commit"

# Crear una nueva rama
git branch new-feature

# Cambiar a la nueva rama
git checkout new-feature

# Hacer cambios en la nueva rama
echo "New feature" >> hello.txt
git add hello.txt
git commit -m "Add new feature"

# Cambiar de vuelta a la rama principal
git checkout main

# Fusionar la nueva rama con la rama principal
git merge new-feature

Ejercicio Práctico

Ejercicio 1: Crear y Fusionar Ramas

  1. Inicializa un nuevo repositorio.
  2. Crea un archivo llamado index.html y añade contenido HTML básico.
  3. Añade y confirma el archivo.
  4. Crea una nueva rama llamada feature-branch.
  5. Cambia a feature-branch y añade una nueva línea al archivo index.html.
  6. Añade y confirma los cambios.
  7. Cambia de vuelta a la rama principal (main).
  8. Fusiona feature-branch con main.

Solución

# Paso 1: Inicializar un nuevo repositorio
git init

# Paso 2: Crear un archivo y añadir contenido
echo "<!DOCTYPE html><html><head><title>My Page</title></head><body><h1>Hello, World!</h1></body></html>" > index.html

# Paso 3: Añadir y confirmar el archivo
git add index.html
git commit -m "Add index.html with basic HTML structure"

# Paso 4: Crear una nueva rama
git branch feature-branch

# Paso 5: Cambiar a la nueva rama
git checkout feature-branch

# Paso 6: Añadir una nueva línea al archivo
echo "<p>This is a new feature.</p>" >> index.html

# Paso 7: Añadir y confirmar los cambios
git add index.html
git commit -m "Add new feature to index.html"

# Paso 8: Cambiar de vuelta a la rama principal
git checkout main

# Paso 9: Fusionar la nueva rama con la rama principal
git merge feature-branch

Conclusión

En esta sección, hemos cubierto la terminología básica de Git, incluyendo conceptos como repositorios, confirmaciones, ramas, fusiones y más. Estos términos son fundamentales para entender y trabajar con Git de manera efectiva. Asegúrate de familiarizarte con ellos antes de avanzar a las operaciones básicas de Git en el próximo módulo.

Dominando Git: De Principiante a Avanzado

Módulo 1: Introducción a Git

Módulo 2: Operaciones Básicas de Git

Módulo 3: Ramas y Fusión

Módulo 4: Trabajando con Repositorios Remotos

Módulo 5: Operaciones Avanzadas de Git

Módulo 6: Herramientas y Técnicas de Git

Módulo 7: Estrategias de Colaboración y Flujo de Trabajo

Módulo 8: Mejores Prácticas y Consejos de Git

Módulo 9: Solución de Problemas y Depuración

Módulo 10: Git en el Mundo Real

© Copyright 2024. Todos los derechos reservados