Introducción a Git

Git es un sistema de control de versiones distribuido que permite a equipos y desarrolladores individuales llevar un historial de cambios en su código, colaborar y mantener proyectos organizados.

¿Por qué aprender Git?

  • Control total de versiones de tu código.
  • Trabajo colaborativo sin sobrescribir cambios.
  • Integración con plataformas como GitHub, GitLab o Bitbucket.
  • Estándar de la industria para desarrollo profesional.

Instalación y Configuración Inicial

Instalación

  • Windows: Descarga desde git-scm.com.
  • Linux:
    sudo apt install git # Debian/Ubuntu
    sudo dnf install git # Fedora
    
  • macOS:
    brew install git
    

Configuración básica

git config --global user.name "Tu Nombre"
git config --global user.email "tuemail@ejemplo.com"
git config --list

Conceptos Fundamentales

  • Repositorio: Carpeta con historial de cambios.
  • Commit: Punto de guardado con descripción.
  • Branch (rama): Línea de desarrollo independiente.
  • Merge: Combinar ramas.
  • Remote: Repositorio en la nube (GitHub, GitLab).

Primeros Pasos

git init # Crear un repositorio
git status # Ver estado
git add archivo.txt # Preparar archivo
git commit -m "Mensaje" # Guardar cambios

Trabajo con Ramas

git branch nueva-rama     # Crear rama
git checkout nueva-rama   # Cambiar de rama
git merge nueva-rama      # Fusionar rama
git branch -d nueva-rama  # Eliminar rama

Repositorios Remotos

git remote add origin https://github.com/usuario/proyecto.git
git push -u origin main
git pull origin main
git pull origin main --allow-unrelated-histories # Fusionar ambos historiales. Si quieres conservar tanto lo local como lo remoto

Flujo de Trabajo Colaborativo

  1. Clonar repositorio:
    git clone URL
    
  2. Crear rama para tu feature.
  3. Hacer commits claros y frecuentes.
  4. Subir cambios (push).
  5. Crear Pull Request / Merge Request.

Comandos Avanzados

Revertir cambios:

git checkout -- archivo.txt
git reset --hard HEAD~1

Rebase interactivo:

git rebase -i HEAD~3

Stash (guardar temporalmente):

git stash
git stash pop

Buenas Prácticas Profesionales

  • Commits pequeños y descriptivos.

  • Usar ramas por feature o bugfix.

  • Revisar código con Pull Requests.

  • Mantener main o master siempre estable.

  • Integrar CI/CD para automatizar pruebas.