Volver a herramientas

Asistente de Comandos Git

¿Se te olvidó cómo hacer algo en Git? Encuentra el comando exacto aquí.

Git: control de versiones distribuido

Git es un sistema de control de versiones distribuido creado por Linus Torvalds en 2005 para gestionar el desarrollo del kernel de Linux. A diferencia de sistemas cliente-servidor como Subversion (SVN), cada desarrollador tiene una copia local completa del repositorio con todo su historial, lo que permite trabajar sin conexión a internet.

Hoy en día, más del 93% de los desarrolladores profesionales usan Git como su sistema de control de versiones principal, según la encuesta de Stack Overflow 2022. Servicios como GitHub, GitLab y Bitbucket alojan millones de repositorios Git.

Flujos de trabajo comunes

  • Git Flow: El modelo de ramas más popular. Usa main para producción, develop para integración, feature/* para nuevas funcionalidades, release/* para preparar versiones y hotfix/* para parches urgentes.
  • Trunk-based development: Ramas cortas que se fusionan a main varias veces al día. Ideal para equipos que practican CI/CD y despliegues continuos.
  • GitHub Flow: Simplificación de Git Flow. Crea una rama, haz commits, abre un pull request, revisa y despliega. Sin ramas develop ni release.

Comandos esenciales

  • git init — Inicia un repositorio nuevo en el directorio actual
  • git clone <url> — Clona un repositorio remoto completo incluyendo todo el historial
  • git add <archivo> — Agrega cambios al área de staging (preparación para commit)
  • git commit -m "mensaje" — Guarda los cambios en el historial con un mensaje descriptivo
  • git push — Sube los commits locales al repositorio remoto
  • git pull — Descarga y fusiona cambios del repositorio remoto
  • git branch — Lista, crea o elimina ramas
  • git merge <rama> — Fusiona una rama en la rama actual
  • git rebase — Reorganiza commits para mantener un historial lineal
  • git stash — Guarda cambios temporales sin commitearlos
  • git log — Muestra el historial de commits del repositorio
  • git diff — Muestra diferencias entre cambios sin stage

Consejos y buenas prácticas

  • Commits atómicos: Cada commit debe representar un cambio lógico único. No mezcles correcciones de bugs con nuevas funcionalidades en el mismo commit.
  • Mensajes descriptivos: Usa el formato estándar: línea de asunto (máx. 50 caracteres) seguida de un cuerpo que explique el qué y el por qué del cambio.
  • .gitignore: Mantén un archivo .gitignore actualizado para evitar committear claves, contraseñas, archivos compilados y dependencias (node_modules, vendor, .env).
  • No committees archivos sensibles: Si accidentalmente committeas una clave, no basta con eliminarla del archivo — debes rotar la clave y reescribir el historial con git filter-branch.
  • Pull antes de push: Siempre haz git pull --rebase antes de pushear para evitar merges innecesarios y mantener el historial limpio.