Comandos Básicos de Git: Guía Práctica de Terminal
Una chuleta práctica y rigurosa con los comandos de terminal más utilizados en Git: sintaxis, parámetros clave, salidas esperadas y errores comunes para trabajar con soltura.
Los comandos básicos de Git constituyen el conjunto esencial de instrucciones de terminal (`init`, `status`, `add`, `commit`, `log`, `diff`, `branch`, `checkout/switch`, `merge`, `push`, `pull`) que todo profesional utiliza diariamente para gestionar el ciclo de vida de un proyecto.
Dominar la terminal de Git otorga independencia de interfaces gráficas específicas, permite automatizar tareas en scripts y servidores remotos, y proporciona un control preciso sobre cada archivo que se incluye en el historial.
Imagina la caja de herramientas de un carpintero: aunque existan máquinas automáticas modernas, el martillo, el serrucho, la cinta métrica y el destornillador son las herramientas que siempre llevará en el cinturón y que utilizará en cada trabajo. Estos 10 comandos de Git son tus herramientas fundamentales del día a día.
Explicación Paso a Paso del Tema
Preparar y confirmar cambios (add y commit)
Domina el ciclo cotidiano de captura de código.
Tras modificar archivos en tu editor, ejecuta `git status` para ver qué cambió. Luego usa `git add <archivo>` (o `git add .` para todo el directorio) para enviarlo al área de preparación. Finalmente, confirma la instantánea con `git commit -m "tipo: descripción clara"`.
git add index.html style.css && git commit -m "feat: maquetar cabecera responsiva"
| Parámetro / Flag | Tipo / Rol | Significado y Uso |
|---|---|---|
| git add | Comando de preparación | Agrega archivos específicos al Staging Area |
| -m | Bandera de mensaje | Permite pasar el mensaje descriptivo del commit directamente sin abrir un editor interactivo |
Puedes combinar el añadido de archivos ya rastreados y el commit en un solo paso usando `git commit -am "mensaje"`.
Hacer `git commit` sin la bandera `-m`, lo que abrirá el editor Vim en la terminal, dejando a muchos principiantes atrapados sin saber salir (se sale escribiendo `:wq` y Enter).
Inspeccionar diferencias antes de confirmar (diff)
Revisa siempre qué líneas agregaste o quitaste antes de sellar un commit.
`git diff` muestra los cambios en tu directorio de trabajo que aún no has agregado a Staging. Las líneas en verde con un signo `+` son adiciones, y las líneas en rojo con un signo `-` son eliminaciones. Para ver lo que ya agregaste a Staging, usa `git diff --staged`.
git diff
| Parámetro / Flag | Tipo / Rol | Significado y Uso |
|---|---|---|
| git diff | Comando de inspección | Compara el directorio de trabajo actual contra el Staging Area |
| --staged | Modificador | Compara lo que está en Staging contra el último commit realizado |
Revisar `git diff --staged` antes de cada commit es una de las mejores costumbres de un desarrollador senior.
Hacer commit a ciegas sin verificar con `git diff`, incluyendo accidentalmente archivos de prueba, claves personales o código comentado inútil.
Navegar y crear ramas (branch y switch)
Aísla nuevas funciones en ramas independientes sin tocar la rama principal.
En Git moderno se utiliza `git switch -c <nueva-rama>` para crear y cambiarte a una rama de inmediato (equivalente al antiguo `git checkout -b <nueva-rama>`). Para volver a la rama principal, simplemente ejecutas `git switch main`.
git switch -c feature/nuevo-formulario && git branch
| Parámetro / Flag | Tipo / Rol | Significado y Uso |
|---|---|---|
| git switch | Comando moderno de ramas | Cambia de rama de trabajo activa en el directorio |
| -c (create) | Bandera de creación | Crea una nueva rama y se posiciona en ella inmediatamente |
| git branch | Comando de listado | Lista todas las ramas locales existentes y resalta con un asterisco la rama activa |
Usa convenciones de nombres para tus ramas como `feature/nombre`, `fix/nombre` o `docs/nombre` para mantener el repositorio perfectamente ordenado.
Escribir código de una nueva funcionalidad compleja directamente en la rama `main` en lugar de crear una rama temática aislada.
Casos Prácticos Reales en Producción
Situaciones de ingeniería reales sin mención de presupuestos ficticios.
1Caso de Producción: Flujo de Trabajo en Terminal para Parche de Emergencia en Servidor
Un servidor en producción experimentaba un error por una variable mal escrita en un script de Node.js. El desarrollador solo disponía de una sesión SSH de terminal sin interfaz gráfica para resolverlo.
El ingeniero clonó el repositorio, creó una rama de parche con `git switch -c hotfix/puerto`, corrigió la línea, verificó el cambio con `git diff`, hizo `git commit -am "fix: corregir variable de puerto en producción"`, fusionó a main y desplegó el contenedor en 4 minutos.
Fichas Nemotécnicas de Conceptos Clave
Glosario rápido para recordar los términos fundamentales de la lección.
Comando que prepara todos los archivos modificados y nuevos en el directorio actual para el próximo commit.
Crea una instantánea permanente en el historial con un mensaje descriptivo del cambio realizado.
Visualiza el árbol histórico de commits de forma compacta y gráfica en una sola línea por confirmación.
Comandos Básicos de Git: Guía Práctica de Terminal
Selecciona una opción para autoevaluarte al instante. La respuesta se califica de inmediato.
¿Qué comando moderno se utiliza para crear una nueva rama y cambiarse a ella de inmediato?
¿Qué comando permite inspeccionar las líneas modificadas que ya están en el Staging Area?
¿Cómo se sale de la pantalla de 'git log' cuando muestra dos puntos (:) al final?
Preguntas Frecuentes (FAQ)
¿Cuál es la diferencia entre git checkout y git switch?
`git checkout` hacía demasiadas cosas (cambiar ramas, restaurar archivos, viajar a commits pasados). En versiones recientes, Git introdujo `git switch` (exclusivo para ramas) y `git restore` (para deshacer archivos) para separar responsabilidades con mayor claridad.
¿Cómo salgo de la vista de git log si la terminal se queda congelada?
Presiona la tecla `q` en tu teclado. Git usa el visor `less` para mostrar historiales largos; pulsar `q` sale de inmediato y te devuelve al cursor de la consola.
¿Qué hace el comando git clean -fd?
Elimina de forma irreversible todos los archivos y carpetas nuevos no rastreados (untracked) de tu directorio de trabajo, limpiándolo por completo.