Cómo deshacer el último compromiso en Git

Cómo deshacer el último compromiso en Git
Un flujo de trabajo común en GIT es que realiza cambios en su proyecto, agrega los cambios al área de puesta en escena, confirme los cambios, realiza nuevos cambios, organiza los cambios, confirma los cambios y sigue y sigue y sigue. Pero, ¿qué pasa si cometió sus cambios por error?? Bueno, no te temas. Siempre puedes deshacer tu último compromiso en Git. En este artículo, te mostraré cómo deshacer el último compromiso en Git. Entonces empecemos.

Configuración de un repositorio de prueba Git:

En esta sección, voy a clonar uno de mis repositorio de GitHub en mi computadora para configurar un repositorio de pruebas para este artículo. Si quieres seguirlo, entonces puedes hacerlo también. Si tiene su propio repositorio de git para trabajar, entonces genial! Puedes usarlo también.

Para clonar uno de mis repositorio de GitHub (https: // github.com/dev-shovon/my-project), ejecute el siguiente comando:

$ git clon https: // github.com/dev-shovon/my-project undo_commit_demo

El repositorio de Github debe clonarse en deshacer_commit_demo/ directorio.

Ahora, navegue al deshacer_commit_demo/ Directorio de la siguiente manera:

El compromiso que desea deshacer puede estar en una rama diferente como la mía. Quiero deshacer el último compromiso del IE-FIX rama. Entonces, tengo que tirar de la rama IE-FIX de mi repositorio de Github.

Puedes tirar del IE-FIX rama de Github de la siguiente manera:

$ Git Pull Origin IE-Fix

NOTA: Aquí, IE-FIX es el nombre de la rama.

El IE-FIX la rama debe ser tirada.

Ahora, consulte la rama (en mi caso, IE-FIX) de la cual desea deshacer el último cometer de la siguiente manera:

$ git checkout, es decir

Como puede ver, el último compromiso del IE-FIX la rama es AEC00F3. En las siguientes secciones, le mostraré formas de deshacer el último compromiso en su repositorio de git.

Deshacer el último cometer y mantener los cambios:

Una forma de deshacer el último confirmación es el uso de restablecimiento suave en su repositorio de git. Lo que esto hace es que se elimina la última confirmación y los cambios que ha realizado en esa confirmación se agrega al área de puesta en escena de su repositorio Git. De esta manera, si desea solucionar algo, puede modificar los archivos y agregar una nueva confirmación.

Como puede ver, el último se compromete en mi IE-FIX la rama es AEC00F3.

$ git log -enneline

Además, mi área de puesta en escena está limpia.

Estado de $ git

Ahora, para eliminar o deshacer el último confirmación, ejecute el siguiente comando:

$ git restablecimiento -cabeza -suave ~ 1

Como puede ver, el compromiso AEC00F3 se ha ido.

$ git log -enneline

Además, el archivo que modifiqué en la última confirmación está en mi área de puesta en escena.

Estado de $ git

Ahora, puede modificar aún más los archivos, corregir los errores que ha cometido y cometer los cambios nuevamente.

Deshacer el último cometer y eliminar cambios:

Si la última confirmación que desea eliminar es inútil para usted, entonces puede considerar un reinicio duro en su repositorio Git. Lo que hace el reinicio duro es, elimina el último comodidad como antes. Pero, también elimina todos los cambios que ha realizado en el último comet. Haga un reinicio duro solo cuando esté seguro de que ya no necesita nada de la última comodidad.

Voy a tirar del IE-FIX rama de mi repositorio de Github nuevamente para recuperar el último comet AEC00F3 y retírelo nuevamente en esta sección.

$ Git Pull Origin IE-Fix

Como puede ver, el último confirmación está de regreso. Si su repositorio Git se carga en un servicio en la nube Git como GitHub, entonces puede restaurar cualquier compromiso que elimine por error también.

Como puede ver, mi área de puesta en escena está limpia.

Estado de $ git

Ahora, para eliminar la última confirmación y eliminar los cambios en esa confirmación, ejecute el siguiente comando:

$ git reinicio -cabeza -hard ~ 1

El último confirmación debe eliminarse y el CABEZA el puntero debe actualizarse.

Como puede ver, el compromiso AEC00F3 se elimina y la confirmación inmediatamente antes de eso (3ffffdee) es la actual el último comodidad.

$ git log -enneline

El área de puesta en escena también está limpia. Entonces, los cambios cambian desde la confirmación eliminada existen.

Estado de $ git

Actualización del repositorio de git remoto:

Ahora que ha eliminado con éxito la confirmación defectuosa de su repositorio Git, es posible que desee actualizar su repositorio de GitHub también. Este es el tema de esta sección.

Como se puede ver, estado de git también muestra que estoy 1 compromiso del repositorio remoto.

Antes de actualizar mi repositorio de GitHub, el confirmación AEC00F3 existe a pesar de que lo eliminé del repositorio de git local como puede ver.

Para sincronizar el repositorio de git local con el repositorio de GitHub, ejecute el siguiente comando:

$ Git Push-Force Origin IE-Fix

Los cambios del repositorio de git local deben sincronizarse con el repositorio de GitHub.

El repositorio de GitHub debe actualizarse. Como puede ver, el compromiso AEC00F3 ya no se enumera. El compromiso inmediatamente antes AEC00F3, cual es 3ffffdee es ahora el último comodidad.

Entonces, así es como deshacer el último compromiso en Git. Gracias por leer este artículo.