Git Cheat Sheet
Git Cheat Sheet – Comandos Esenciales y Avanzados
Inicialización y configuración
git init # Inicia un nuevo repositorio Git
git config --global user.name "Tu Nombre"
git config --global user.email "tu.email@example.com"
Repositorios
git clone <url> # Clona un repositorio remoto
git clone /ruta/local /nuevo # Clona un repositorio local
git remote add origin <url> # Añade un repositorio remoto
Sincronización
git fetch origin # Descarga cambios remotos sin fusionar
git pull origin main # Descarga y fusiona desde el remoto
git push origin main # Sube commits locales al remoto
Gestión de ramas
git branch # Lista ramas locales
git branch <nombre> # Crea nueva rama
git checkout <rama> # Cambia de rama
git switch <rama> # Alternativa moderna a checkout
git checkout -b <rama> # Crea y cambia a la nueva rama
git branch -d <rama> # Elimina una rama fusionada
git branch -D <rama> # Fuerza eliminación de una rama
git merge <rama> # Fusiona una rama en la actual
git merge -s ours <rama> # Usa estrategia "ours" al fusionar
git merge -s octopus <a> <b> # Fusión múltiple de ramas
Staging y commits
git status # Estado del repositorio
git add <archivo> # Añade archivo al staging
git add . # Añade todos los cambios
git add -p # Añade interactivamente por fragmento
git restore --staged <archivo> # Quita del staging (mantiene cambios)
git commit -m "Mensaje" # Crea un commit
git commit # Crea commit con mensaje desde editor
git commit --amend # Modifica último commit
Historial
git log # Historial completo
git log --oneline # Historial resumido
git log --graph --oneline # Historial visual
git log --author="Nombre" # Historial por autor
git log --grep="texto" # Filtrar por palabra clave
git diff # Muestra diferencias
git diff --staged # Diferencias en staging
Etiquetas
git tag # Lista etiquetas
git tag v1.0 # Crea etiqueta ligera
git tag -a v1.0 -m "mensaje" # Crea etiqueta anotada
git show v1.0 # Detalles de la etiqueta
git push origin v1.0 # Sube una etiqueta
git push origin --tags # Sube todas las etiquetas
git tag -d v1.0 # Elimina etiqueta local
git push origin :refs/tags/v1.0 # Elimina etiqueta remota
Git Stash
git stash save "comentario" # Guarda cambios en stash
git stash list # Lista stashes
git stash pop # Aplica y elimina el último stash
git stash apply stash@{n} # Aplica un stash específico
git stash drop stash@{n} # Elimina stash sin aplicarlo
Cherry-pick
git cherry-pick <commit> # Aplica un commit específico
Git Bisect
git bisect start # Inicia búsqueda binaria
git bisect good <commit> # Marca un commit como bueno
git bisect bad <commit> # Marca uno como malo
git bisect run <script> # Automatiza la búsqueda
git bisect reset # Finaliza y vuelve al punto original
Reset (revisar commits)
git reset --soft HEAD~1 # Elimina commit, mantiene staging
git reset HEAD~1 # Elimina commit, mantiene cambios locales
git reset --hard HEAD~1 # Elimina commit y cambios locales
Rebase
git rebase <rama> # Reorganiza historial sobre otra rama
git rebase -i HEAD~n # Rebase interactivo (squash, edit, drop)
Otras utilidades
git branch -r # Lista ramas remotas
git push -u origin <rama> # Crea rama remota y establece seguimiento
git push origin --delete <rama> # Elimina rama remota
git checkout <tag> # Revisa estado exacto de una etiqueta
https://education.github.com/git-cheat-sheet-education.pdf
Recursos útiles
1. "Learn Git Branching"
Es, sin duda, la herramienta más recomendada. Es un simulador interactivo donde escribes comandos y ves en tiempo real cómo se mueven las ramas y los commits en un diagrama animado.
- Por qué funciona: Te propone retos (puzles) que debes resolver.
- Qué aprendes:
merge,rebase,cherry-picky manejo de ramas avanzado. - Enlace: learngitbranching.js.org
2. Visualizadores en tiempo real (Playgrounds)
Si quieres experimentar sin miedo a romper nada, existen sitios web que dibujan el árbol de Git mientras pruebas comandos:
- Visualizing Git: Una pantalla limpia donde cada comando que escribes genera un nodo visual. Ideal para entender el
HEADy los punteros. - Git School: Similar al anterior, pero muy enfocado en la relación entre el repositorio local y el remoto.
3. Clientes de Escritorio (GUIs)
A veces, para trabajar, es mejor usar una interfaz que te permita "ver" el historial sin comandos complicados. Los más populares son:
| Herramienta | Lo mejor |
|---|---|
| GitKraken | Probablemente la interfaz más estética y clara para ver árboles complejos. |
| Sourcetree | Muy completo y gratuito, desarrollado por Atlassian. |
| Fork | Rápido, intuitivo y con una gestión de conflictos de archivos excelente. |
| GitHub Desktop | El más sencillo, ideal si estás empezando y usas GitHub. |
4. Extensiones para VS Code
Si usas Visual Studio Code, no necesitas salir del editor para ver Git de forma gráfica:
- Git Graph: Te muestra el historial de commits como un mapa de metro. Puedes hacer click en los nodos para ver cambios, crear ramas o hacer merges visualmente.
- GitLens: Te da una superpotencia visual, mostrándote quién escribió cada línea de código y permitiéndote navegar por el historial visualmente.