ConceptoCierre
Los comandos del día en una hoja
Todos los comandos del día
| Qué quieres hacer | Comando | Ojo |
|---|---|---|
| Configuración inicial | ||
| Presentarte con Git | git config --global user.name "Nombre" · git config --global user.email "correo" |
El mismo correo de GitHub |
| Definir rama y editor | git config --global init.defaultBranch main · git config --global core.editor "code --wait" |
Sin --wait, Git no espera a VS Code |
| Probar conexión SSH | ssh -T git@github.com |
Debe saludarte por tu usuario |
| El día a día | ||
| Iniciar o descargar un repo | git init · git clone git@github.com:usuario/repo.git |
Clonar por SSH evita contraseñas |
| Ver qué cambió | git status · git diff · git diff --staged |
Rojo = sin elegir; verde = listo |
| Guardar un punto | git add archivo · git commit -m "feat: explica el cambio" |
Un commit por propósito |
| Ver el mapa del historial | git log --oneline --graph --all |
Muestra todas las ramas y HEAD |
| Deshacer errores | ||
| Descartar cambios en un archivo | git restore archivo |
Lo que se tira sin commit no vuelve |
| Sacar del staging | git restore --staged archivo |
Tus cambios siguen en el archivo |
| Corregir el último commit | git commit --amend -m "Mensaje" |
Cambia el hash |
| Juntar commits locales | git reset --soft HEAD~n |
Los cambios quedan en staging |
| Borrar commits por completo | git reset --hard HEAD~n |
Peligroso: borra lo que no tiene commit |
| Rescatar commits “perdidos” | git reflog · git reset --hard HEAD@{n} |
Tu red de seguridad local |
| Deshacer un commit publicado | git revert <hash> |
Seguro: crea un commit inverso |
| Ramas y colaboración | ||
| Crear rama y cambiarte | git switch -c rama |
Cambiar: git switch rama |
| Apartar trabajo a medias | git stash · git stash pop |
-u incluye archivos nuevos |
| Integrar otra rama | git merge rama |
Cancelar: git merge --abort |
| Subir una rama nueva | git push -u origin rama |
-u solo la primera vez |
| Traer cambios | git fetch (ver) · git pull (traer y juntar) |
git fetch --prune limpia ramas borradas |
| Borrar ramas integradas | git branch -d rama · git push origin --delete rama |
-D tras Squash o Rebase and merge |
| Rebase | ||
| Poner tu rama al día | git rebase main |
Current es main; Incoming es tu commit |
| Continuar o cancelar | git add archivo + git rebase --continue · git rebase --abort |
Nunca git commit a mitad de un rebase |
| Limpiar antes del PR | git rebase -i main (o HEAD~n) |
reword, squash, fixup, drop |
| Subir una rama reescrita | git push --force-with-lease |
Nunca en main |
Para seguir practicando
- Learn Git Branching: juego visual en el navegador que dibuja cómo se mueven las ramas con
merge,rebase,resetycherry-pick. - Oh My Git!: videojuego de código abierto con cartas para practicar Git resolviendo acertijos.
- GitHub Skills: cursos cortos oficiales dentro de repositorios reales sobre PRs, conflictos, Markdown y GitHub Actions.
- Conventional Commits: la guía de una página con el estándar de mensajes (
feat:,fix:,docs:,refactor:).