Cómo usar: Generador de comandos de Git
- Busca tu tarea en la lista o búscala con las palabras clave: «deshacer», «renombrar», «guardar temporalmente», «fusionar».
- Introduce los nombres de las ramas, los hash de las confirmaciones o las rutas de los archivos que necesite la tarea.
- Lee la explicación que aparece debajo de cada comando; los pasos marcados como «reescriben el historial» o «destructivos» requieren especial cuidado en las ramas compartidas.
- Copia un solo comando o todos ellos y ejecútalos en tu terminal desde la carpeta del repositorio.
Deshacer acciones en Git: ¿qué comando usar y cuándo?
| Situación | Comando | ¿Es seguro con las confirmaciones ya enviadas? |
|---|---|---|
| Deshacer la última confirmación, mantener los cambios | git reset --soft HEAD~1 | No — reescribe el historial |
| Deshacer una confirmación que otros ya hayan descargado | git revert <hash> | Sí — añade una nueva confirmación |
| Descartar los cambios no confirmados de un archivo | git restore <file> | Solo local |
| Corregir el mensaje de la última confirmación | git commit --amend | No — reescribe el historial |
| Aparcar el trabajo en curso | git stash push -m "…" | Solo local |
Reescribir el historial de forma segura
Comandos como reset, commit --amend e «interactive» rebase crean nuevas confirmaciones con nuevos hash. Eso está bien en tu propia rama, pero en una rama compartida el historial de los demás ya no coincide. Si tienes que enviar un historial reescrito, usa git push --force-with-lease: a diferencia de --force, este se niega a sobrescribir las confirmaciones del remoto que aún no has visto.
Comandos modernos: `switch` y `restore`
Desde Git 2.23, git switch (cambiar de rama) y git restore (restaurar archivos) dividen el comando sobrecargado git checkout en dos comandos más claros. Este generador los utiliza cuando aportan mayor claridad. Antes de hacer un push, mantén tu repositorio limpio con un archivo .gitignore adecuado, escribe notas de lanzamiento con el generador de changelog y elige los números de versión con la calculadora de versiones semánticas.
También se busca como: git deshacer la última confirmación, git cambiar nombre de rama, git eliminar rama remota, git squash commits, guía rápida de git, git revertir una confirmación enviada, git eliminar un archivo de la lista de seguimiento, git force con lease.
Herramientas que combinan con: Generador de comandos de Git
- Conventional Commit Builder — Write commit messages that follow the Conventional Commits spec without memorizing it.
- Generador de flujos de trabajo de GitHub Actions — Elige tu pila, tus desencadenantes y tus pasos, y obtén un .github/workflows/ci.yml — instalación, caché, lint, pruebas, compilación, una matriz de versiones y, si quieres, una implementación en GitHub Pages, Vercel o un registro de contenedores.
- Generador de archivos README — Rellena unos cuantos campos y obtén un README.md — insignias, instalación, ejemplo de uso, tabla de configuración, variables de entorno, hoja de ruta y licencia — con vista previa en tiempo real y comprobación de que todo esté completo.
- YAML Validator — Paste a Docker Compose file, Kubernetes manifest, GitHub Actions workflow or any YAML to pinpoint errors, catch common pitfalls and get a cleanly formatted version.
Preguntas frecuentes
¿Cómo puedo deshacer la última confirmación pero conservar mis cambios?
git reset --soft HEAD~1. La confirmación desaparece, pero los cambios siguen en la pila. Usa --mixed (la opción por defecto) para mantenerlos fuera de la pila. No hagas esto con las confirmaciones que ya hayas enviado a una rama compartida; usa git revert allí.¿Cuál es la diferencia entre «git reset» y «git revert»?
reset mueve el puntero de la rama hacia atrás y elimina las confirmaciones del historial. revert mantiene el historial y añade una nueva confirmación que deshace los cambios, lo cual es seguro para las confirmaciones que ya tienen otros.¿Cómo puedo cambiar el nombre de una rama, tanto a nivel local como en GitHub?
git branch -m old new, sube el nuevo nombre con git push -u origin new y elimina el antiguo con git push origin --delete old. Actualiza la rama predeterminada en la configuración de GitHub si hace falta.¿Es peligroso usar «git push --force»?
--force-with-lease, que solo sobrescribe la rama remota si sigue estando donde la viste por última vez.