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
mainpara producción,developpara integración,feature/*para nuevas funcionalidades,release/*para preparar versiones yhotfix/*para parches urgentes. - Trunk-based development: Ramas cortas que se fusionan a
mainvarias 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
developnirelease.
Comandos esenciales
git init— Inicia un repositorio nuevo en el directorio actualgit clone <url>— Clona un repositorio remoto completo incluyendo todo el historialgit 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 descriptivogit push— Sube los commits locales al repositorio remotogit pull— Descarga y fusiona cambios del repositorio remotogit branch— Lista, crea o elimina ramasgit merge <rama>— Fusiona una rama en la rama actualgit rebase— Reorganiza commits para mantener un historial linealgit stash— Guarda cambios temporales sin commitearlosgit log— Muestra el historial de commits del repositoriogit 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 --rebaseantes de pushear para evitar merges innecesarios y mantener el historial limpio.