Pulsars

Git Undo — Corrige Errores de Git al Instante

What happened?

Git es el sistema de control de versiones más utilizado del mundo, pero sus comandos pueden ser confusos — especialmente cuando necesitas deshacer algo. Un commit incorrecto, un merge accidental o datos sensibles publicados por error son situaciones frecuentes que requieren una solución precisa. Esta herramienta interactiva te guía paso a paso hacia los comandos exactos para corregir cada error sin empeorar la situación.

¿Cuáles son los errores Git más frecuentes?

Los errores más comunes incluyen hacer commit en la rama equivocada, incluir archivos que no deberían estar en el repositorio (como .env o node_modules), escribir un mensaje de commit incorrecto, o pushear cambios que rompen el build. Otros errores frecuentes son hacer merge de una rama incorrecta, perder trabajo tras un git reset --hard accidental, y publicar credenciales o claves API. Cada uno tiene una solución diferente, y usar el comando incorrecto puede empeorar la situación.

¿Cuál es la diferencia entre git reset y git revert?

git reset mueve el puntero de la rama hacia un commit anterior, eliminando los commits posteriores del historial. Es ideal para trabajo local que aún no ha sido pusheado. git revert crea un nuevo commit que invierte los cambios de un commit específico, manteniendo intacto el historial. Usa revert cuando los commits ya están en una rama compartida, porque reescribir historial público causa conflictos para otros desarrolladores. La regla de oro: si ya pusheaste, usa revert; si es local, puedes usar reset. ¿Necesitas gestionar permisos de archivos? Consulta nuestro calculador de chmod.

Preguntas frecuentes

¿Cuál es la diferencia entre git reset y git revert?

+

git reset mueve el puntero de la rama hacia atrás, borrando commits del historial. Es seguro para trabajo local no pusheado. git revert crea un nuevo commit que deshace los cambios de un commit anterior, preservando el historial completo. Usa revert cuando ya hayas pusheado a una rama compartida — es seguro para flujos colaborativos porque no reescribe el historial.

¿Cuándo usar --force-with-lease en vez de --force?

+

Siempre prefiere --force-with-lease sobre --force al hacer force push. --force-with-lease verifica que la rama remota no haya sido actualizada por otra persona desde tu último fetch. Si fue actualizada, el push se rechaza — evitando que sobrescribas accidentalmente el trabajo de un compañero. --force sobrescribe todo ciegamente.

¿Puedo recuperar un commit después de git reset --hard?

+

Sí, normalmente. Git mantiene un reflog local (git reflog) que registra todos los movimientos de HEAD durante los últimos 90 días. Busca el hash del commit en la salida del reflog y usa git checkout -b rama-recuperacion <hash> para restaurarlo. Sin embargo, si también ejecutaste git gc, los commits sin referencia pueden eliminarse permanentemente.

Hice commit de una contraseña en git. ¿Está comprometida?

+

Si pusheaste el commit, asume que la credencial está comprometida — incluso si haces force-push de una corrección en segundos. Escáneres automáticos pueden haberla detectado. Rota la credencial inmediatamente: revoca claves API, cambia contraseñas, genera nuevos tokens. Luego usa git-filter-repo para eliminarla del historial.

¿Cómo deshago un merge sin perder la rama?

+

Si el merge no fue pusheado, usa git reset --hard ORIG_HEAD para volver al estado anterior al merge. Si ya fue pusheado, usa git revert -m 1 <hash-commit-merge> para crear un nuevo commit que deshaga el merge preservando el historial. Nota: si reviertes un merge y luego quieres re-mergear la misma rama, necesitarás revertir la reversión primero.

Related Tools