Chuleta de comandos
Configuración
git config --global user.name "Tu Nombre"
git config --global user.email "tu-correo@example.com"
git config --global init.defaultBranch main
Día a día
| Quiero... |
Comando |
| Crear un repositorio |
git init |
| Ver el estado |
git status |
| Preparar cambios |
git add archivo · git add . |
| Confirmar |
git commit -m "mensaje" |
| Ver el historial |
git log --oneline --graph --all |
| Ver cambios |
git diff · git diff --cached |
| Quitar del staging |
git restore --staged archivo |
| Descartar cambios |
git restore archivo |
| Deshacer un commit (seguro) |
git revert <hash> |
| Corregir el último mensaje |
git commit --amend -m "..." |
Ramas
| Quiero... |
Comando |
| Crear y cambiar |
git switch -c nombre |
| Cambiar |
git switch nombre |
| Listar |
git branch |
| Fusionar |
git merge nombre |
| Cancelar fusión |
git merge --abort |
| Borrar (ya fusionada) |
git branch -d nombre |
| Guardar a medias |
git stash push -m "..." · git stash pop |
| Rebasar |
git rebase main · git rebase --continue · git rebase --abort |
Remotos
| Quiero... |
Comando |
| Copiar un repositorio |
git clone <url> |
| Añadir un remoto |
git remote add origin <url> |
| Ver remotos |
git remote -v |
| Subir |
git push · git push -u origin main (primera vez) |
| Traer sin aplicar |
git fetch |
| Traer y fusionar |
git pull |
| Cambiar a SSH |
git remote set-url origin git@github.com:usuario/repo.git |
SSH
ssh-keygen -t ed25519 -C "tu-correo@example.com"
cat ~/.ssh/id_ed25519.pub # esta es la que se copia a GitHub
ssh -T git@github.com
Más comandos (cuando ya domines lo básico)
| Quiero... |
Comando |
| Marcar una versión |
git tag v1.0 · git push origin v1.0 |
| Rescatar commits que parecen perdidos |
git reflog (historial de movimientos de HEAD) y git switch -c rescate <hash> |
| Copiar un commit a la rama actual |
git cherry-pick <hash> |
| Encontrar qué commit introdujo un fallo |
git bisect start · git bisect bad · git bisect good <hash> |
| Ver quién cambió cada línea |
git blame archivo |
Elegir cómo se hace git pull |
git config --global pull.rebase false (fusionar) o true (rebasar) |