Cheatsheet: Comandos Básicos de Git, GitHub y Terminal
📚 Guía para principiantes - Una referencia rápida de los comandos más importantes
🖥️ Comandos Básicos de Terminal
Navegación y Ubicación
# Mostrar la ruta actual donde estás
pwd
# Listar archivos y carpetas en el directorio actual
ls
# Listar archivos con detalles (permisos, tamaño, fecha)
ls -la
# Cambiar de directorio
cd [nombre_carpeta]
# Ir al directorio padre (subir un nivel)
cd ..
# Ir al directorio home del usuario
cd ~
# Ir al directorio raíz
cd /
Manipulación de Archivos y Carpetas
# Crear una carpeta nueva
mkdir [nombre_carpeta]
# Crear un archivo vacío
touch [nombre_archivo]
# Copiar archivo
cp [archivo_origen] [archivo_destino]
# Mover o renombrar archivo
mv [archivo_origen] [archivo_destino]
# Eliminar archivo
rm [nombre_archivo]
# Eliminar carpeta y su contenido
rm -rf [nombre_carpeta]
# Ver contenido de un archivo
cat [nombre_archivo]
Comandos Útiles
# Limpiar la terminal
clear
# Ver historial de comandos
history
# Buscar en el historial (Ctrl+R)
# Cancelar comando actual (Ctrl+C)
# Salir de un programa (Ctrl+Z o q)
🔧 Configuración Inicial de Git
Configurar tu Identidad (Solo una vez)
# Configurar tu nombre
git config --global user.name "Tu Nombre"
# Configurar tu email
git config --global user.email "tu.email@ejemplo.com"
# Ver tu configuración actual
git config --list
📁 Comandos Básicos de Git
Inicializar y Clonar Repositorios
# Inicializar un nuevo repositorio Git en la carpeta actual
git init
# Clonar un repositorio existente desde GitHub
git clone [URL_del_repositorio]
# Ejemplo:
git clone https://github.com/usuario/mi-proyecto.git
Verificar Estado y Cambios
# Ver el estado actual del repositorio
git status
# Ver qué archivos han cambiado
git diff
# Ver el historial de commits
git log
# Ver historial de commits en una línea
git log --oneline
# Ver las ramas disponibles
git branch
Trabajar con Archivos
# Añadir un archivo específico al staging area
git add [nombre_archivo]
# Añadir todos los archivos modificados
git add .
# Añadir todos los archivos con extensión específica
git add *.txt
# Quitar archivo del staging area (antes del commit)
git reset [nombre_archivo]
# Ver qué archivos están en staging
git status
Hacer Commits
# Hacer commit con mensaje
git commit -m "Descripción de los cambios"
# Hacer commit añadiendo todos los archivos modificados
git commit -am "Mensaje del commit"
# Modificar el último commit (antes de hacer push)
git commit --amend -m "Nuevo mensaje"
🌿 Trabajar con Ramas (Branches)
Crear y Cambiar Ramas
# Ver todas las ramas
git branch
# Crear una nueva rama
git branch [nombre_rama]
# Cambiar a una rama existente
git checkout [nombre_rama]
# Crear y cambiar a una nueva rama en un solo comando
git checkout -b [nombre_rama]
# Cambiar a la rama main/master
git checkout main
Fusionar Ramas
# Fusionar una rama con la rama actual
git merge [nombre_rama]
# Eliminar una rama (después de fusionar)
git branch -d [nombre_rama]
# Forzar eliminación de rama
git branch -D [nombre_rama]
☁️ Comandos para GitHub (Repositorios Remotos)
Conectar con Repositorios Remotos
# Ver repositorios remotos configurados
git remote -v
# Añadir un repositorio remoto
git remote add origin [URL_del_repositorio]
# Añadir repositorio upstream (para forks)
git remote add upstream [URL_del_repositorio_original]
# Cambiar URL del repositorio remoto
git remote set-url origin [nueva_URL]
Subir y Descargar Cambios
# Subir cambios al repositorio remoto
git push origin [nombre_rama]
# Subir por primera vez una rama nueva
git push -u origin [nombre_rama]
# Descargar cambios del repositorio remoto
git pull origin [nombre_rama]
# Traer cambios sin fusionar automáticamente
git fetch origin
# Traer cambios del repositorio upstream
git fetch upstream
git pull upstream main
🔄 Flujo de Trabajo Típico
Flujo Básico Diario
# 1. Verificar en qué rama estás
git status
# 2. Actualizar tu rama con los últimos cambios
git pull origin main
# 3. Crear una nueva rama para tu trabajo
git checkout -b mi-nueva-funcionalidad
# 4. Hacer cambios en tus archivos...
# 5. Ver qué archivos cambiaron
git status
# 6. Añadir archivos al staging
git add .
# 7. Hacer commit
git commit -m "Añadir nueva funcionalidad"
# 8. Subir tu rama a GitHub
git push origin mi-nueva-funcionalidad
Sincronizar con Repositorio Original (Fork)
# 1. Traer cambios del repositorio original
git fetch upstream
# 2. Cambiar a tu rama main
git checkout main
# 3. Fusionar cambios del upstream
git merge upstream/main
# 4. Subir los cambios a tu fork
git push origin main
🚨 Comandos de Emergencia
Deshacer Cambios
# Deshacer cambios en un archivo (antes de add)
git checkout -- [nombre_archivo]
# Deshacer todos los cambios no guardados
git checkout -- .
# Deshacer el último commit (mantener cambios)
git reset --soft HEAD~1
# Deshacer el último commit (eliminar cambios)
git reset --hard HEAD~1
# Volver a un commit específico
git reset --hard [hash_del_commit]
Resolver Problemas Comunes
# Si olvidaste hacer pull antes de push
git pull origin main
# Resuelve conflictos si los hay, luego:
git push origin main
# Si necesitas forzar un push (¡cuidado!)
git push --force-with-lease origin [rama]
# Ver diferencias entre ramas
git diff main..mi-rama
# Guardar cambios temporalmente
git stash
# Recuperar cambios guardados
git stash pop
📋 Comandos Útiles para Archivos Especiales
Trabajar con .gitignore
# Crear archivo .gitignore
touch .gitignore
# Ejemplo de contenido para .gitignore:
# *.log
# node_modules/
# .DS_Store
# .env
# Aplicar .gitignore a archivos ya trackeados
git rm --cached [nombre_archivo]
git commit -m "Remover archivo del tracking"
Crear archivo .gitkeep para carpetas vacías
# Git no trackea carpetas vacías, usa .gitkeep
mkdir mi-carpeta-vacia
touch mi-carpeta-vacia/.gitkeep
git add mi-carpeta-vacia/.gitkeep
🎯 Tips y Buenas Prácticas
Mensajes de Commit
# ✅ Buenos mensajes
git commit -m "Añadir función de login"
git commit -m "Corregir bug en el formulario de contacto"
git commit -m "Actualizar documentación del API"
# ❌ Malos mensajes
git commit -m "cambios"
git commit -m "fix"
git commit -m "asdf"
Nombres de Ramas
# ✅ Buenos nombres
git checkout -b feature/login-usuario
git checkout -b bugfix/corregir-formulario
git checkout -b hotfix/error-critico
# ❌ Malos nombres
git checkout -b rama1
git checkout -b test
git checkout -b asdf
🆘 Comandos de Ayuda
# Ayuda general de Git
git help
# Ayuda específica de un comando
git help [comando]
# Ejemplo: git help commit
# Versión de Git instalada
git --version
# Ver configuración actual
git config --list
🔗 Atajos de Teclado Útiles en Terminal
| Atajo | Función |
|---|---|
Ctrl + C |
Cancelar comando actual |
Ctrl + Z |
Suspender proceso |
Ctrl + R |
Buscar en historial |
Ctrl + L |
Limpiar pantalla |
Tab |
Autocompletar |
↑ ↓ |
Navegar historial |
📚 Recursos Adicionales
- GitHub Desktop: Interfaz gráfica para Git
- GitKraken: Cliente Git visual
- VS Code: Editor con integración Git
- GitHub CLI:
ghpara comandos de GitHub desde terminal
💡 Consejo: Practica estos comandos en un repositorio de prueba antes de usarlos en proyectos importantes. ¡La práctica hace al maestro!