Deshacer el commit en Git
- Deshacer confirmación en Git - Restablecimiento completo
- Deshacer confirmación en Git - Restablecer Git
- Deshacer confirmación en Git - Soft Reset Git
- Deshacer confirmación en Git - Recuperar archivos de restablecimiento completo
Este artículo está a punto de guiarnos sobre cómo recuperar lo que no queremos hacer mientras usamos Git commit. Git no es tan complicado que necesitemos un gran proceso para abordar nuestro problema particular, pero es más que el problema que se causa es tan grande que se requieren diferentes técnicas dependiendo de lo que tengamos, el problema y el resultado que deseamos.
Hay muchos aspectos de Git que son fáciles de entender, pero volver a donde estábamos antes es mucho más fácil y apreciable; es más fácil deshacer cambios importantes en un repositorio. Es un momento un poco aterrador cuando no sabemos cómo se realiza usando comandos. Pero en realidad, es sorprendentemente fácil hacer cosas pequeñas como confirmar o deshacer los commits.
Pero, ¿qué haría en este caso para deshacer su commit
no deseado y luego commit
sus nuevos cambios?
Supongamos que si realizó algunos cambios y luego confirmó los cambios, para ese propósito, hay cuatro métodos para hacer esto:
Deshacer confirmación en Git - Restablecimiento completo
Si tiene esto, donde 40 es su HEAD
y (42) es el estado de nuestros archivos.
(42)
38-39-40
↑
Head
Y quiere deshacer el commit 40 y no quiere volver a verlo nunca más y borrar todos los cambios en los archivos modificados localmente.
Usaremos el siguiente comando:
git reset --hard HEAD ~ 1
Producción :
(42)
38-39
↑
Head
Ahora 39 es el HEAD
. Debido a que en el ejemplo anterior, usamos --hard
, ahora sus archivos se restablecen a su estado en la cabeza del commit que es el 39.
Deshacer confirmación en Git - Restablecer Git
Supongamos que el último commit 40 no fue un gran problema, pero solo un poco fuera de lugar. Ahora queremos deshacer el commit pero mantener nuestros cambios. Empezando de nuevo desde aquí, con 40 como nuestra HEAD
:
(42)
38-39-40
↑
Head
En lugar de usar el parámetro --hard
, usaremos el siguiente comando:
git reset HEAD ~ 1
Producción :
(42)
38-39-40
↑
Head
Como hemos visto en ambos casos, HEAD
solo define el último commit. Cuando hacemos un git reset HEAD~1
, el comando Git mueve el puntero HEAD
de nuevo a un commit. Pero (a menos que use --hard
) dejamos nuestros archivos como estaban antes. No hemos perdido nada en él.
Deshacer confirmación en Git - Soft Reset Git
En una nota más ligera, incluso puede deshacer nuestro compromiso pero dejar nuestros archivos y nuestro índice usando lo siguiente:
git reset --soft HEAD ~ 1
Esto no solo dejará nuestros archivos allí; incluso deja nuestro índice allí solo. Cuando hacemos git status
, veremos que los mismos archivos están en el índice que antes. De hecho, veremos después de este comando, podríamos hacer git commit
y estaríamos haciendo nuevamente el commit anterior que acabamos de tener.
Deshacer confirmación en Git - Recuperar archivos de restablecimiento completo
Supongamos que deshacemos un commit como en el ejemplo de la primera opción, pero luego nos damos cuenta de que la necesitamos después. ¿Ahora qué hacer?
No se preocupe, todavía hay una forma de recuperarlo. Usaremos el comando git reflog
y veremos una lista de commits (inacabadas) en las que nos hemos movido. Busque el commit que destruimos y haga esto:
git checkout -b BranchName CommitYouDestroyed
Ahora hemos restaurado ese compromiso. En Git, los commits no se eliminan durante los 90 días desde el día en que se eliminó, por lo que podemos restaurarlas fácilmente como una copia de seguridad nuevamente en los repositorios.
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn