Deshacer en Git

Deshacer en git significa deshacer como cuando escribimos algo en cualquier editor de texto y eliminamos el sam. Después de eso, creemos que se necesita el texto que acabamos de eliminar, luego usamos la operación de deshacer para recuperar el texto anterior, lo mismo deshacer en git es como deshacer en git. Entonces, comenzaremos este artículo con cómo podemos volver a la confirmación anterior.

Volver a una confirmación anterior

Para volver a una confirmación anterior, podemos usar el siguiente comando, ya que básicamente separa nuestra cabeza con la identificación de confirmación anterior.

git checkout commit-id

Usando el comando git checkout commit-id

Entonces, ahora, si escribimos git branch, podemos ver que nuestra cabeza está separada en la identificación de confirmación que acabamos de usar en el comando de pago.

Usando el comando git branch

Así que podemos ver que el siguiente comando nos coloca en la identificación de confirmación utilizada en el comando de pago y podemos hacer nuevas confirmaciones además de esta antigua confirmación sin afectar nuestra rama donde nuestro jefe está presente actualmente.

git checkout commit-id

Podemos realizar cualquier cambio en una rama adecuada usando branch o checkout -b al igual que hemos hecho una nueva confirmación en esta rama de desarrollo que podemos ver usando el comando git log.

Usando el comando de registro de git

Entonces, si desea volver a la confirmación anterior y mantener los cambios, podemos usar el siguiente comando de la siguiente manera:

git reset --soft commit-id

Usando git reset –soft Commit-id

Entonces, para volver a la última confirmación, podemos usar el siguiente comando de la siguiente manera:

git reset --soft HEAD~

Usando el comando git –reset –soft HEAD~

Si queremos descartar permanentemente cualquier cambio realizado después de una confirmación específica, podemos usar el siguiente comando de la siguiente manera:

git reset --hard commit-id

Usando el comando git reset –hard commit-id

Aquí podemos ver que al usar el comando anterior, la confirmación que se realizó después de que la confirmación en particular se descarta, por ejemplo, en este caso, hemos usado el comando git reset –hard commit-id-of-2nd-commit se usa aquí y puede ver que la confirmación después de la segunda confirmación se descarta para confirmar que hemos usado el comando git log y podemos ver que solo muestra dos confirmaciones. Todo el compromiso que estaba después del segundo compromiso se descarta.

Entonces, si desea descartar cualquier cambio realizado después de la última confirmación, podemos usar el siguiente comando de la siguiente manera:

git reset --hard HEAD~

Usando el Comando git reset –hard HEAD~

Aquí podemos ver que todas las confirmaciones realizadas después de esta última confirmación se descartan.

Deshacer cambios

Si queremos deshacer los cambios en un archivo o directorio, podemos usar el siguiente comando de la siguiente manera:

git checkout -- name_of_the_file

Usando el comando git checkout — nombre_del_archivo

Aquí podemos ver que el archivo tiene un contenido de 3 líneas antes de usar este comando y cuando usamos este comando y luego cuando imprimimos el contenido del archivo, imprimió el contenido anterior que se escribió en algún momento en el archivo.

Si queremos deshacer todos los cambios en los archivos presentes en el directorio de trabajo actual, podemos usar el siguiente comando de la siguiente manera:

git checkout -- .

Antes de usar el comando 

Sobre el uso del comando git checkout — 

Entonces, lo que ha hecho este comando es deshacer todo el contenido nuevo presente en el archivo y, al imprimir el contenido de los archivos, devolvió el contenido anterior y . está representando que en el directorio actual tenemos que deshacer todos los cambios.

Entonces, ahora, si queremos deshacer las dos últimas confirmaciones, podemos usar el siguiente comando de la siguiente manera:

git reset HEAD~2

Modificando los archivos  

Confirmando el archivo b.txt

Confirmando el archivo c.txt

Usando el comando git reset HEAD~2

usando reflog

Entonces, básicamente, reflog tiene el historial de todo lo que hemos hecho durante los últimos 90 días, tenemos que usar el siguiente comando de la siguiente manera:

git reflog

Usando el comando git reflog

Además, podemos verificar los diferentes ID de compromiso al ver el resultado de git reflog usando el comando: 

git checkout HEAD@{30} 

Esta es una reorganización y puede ver la confirmación anterior en la salida del comando git reflog, por lo que básicamente este comando colocará la cabeza en esa identificación de confirmación y entenderá la reorganización en mis artículos futuros hasta entonces, puede considerarlo ya que estamos cambiando a lo particular. cometer id.

Además, podemos crear nuevas sucursales y eliminar sucursales solo en esta identificación de confirmación.

Eliminación de una rama

Creando una sucursal

También podemos restablecer directamente a un punto en nuestro reflog usando el siguiente comando de la siguiente manera:

git reset --hard Rebase_name

Usando el comando git reset –hard rebase_name

Deshacer combinación

Deshacer una combinación que aún no se envió a un control remoto. Entonces, si nuestro caso de uso es deshacer las confirmaciones de combinación de otra rama, podemos usar el siguiente comando:

git reset --hard merge-commit-id

Agregar algo de contenido en la característica 

Fusionar los cambios realizados en a.txt de la rama de características a la rama maestra

Agregar algunas líneas más de contenido en a.txt en la rama de características 

Fusión de los contenidos presentes en la rama de función con la rama principal

Usando el comando git reset –hard merge commit-id y aquí podemos ver que al imprimir el contenido del archivo muestra el contenido anterior 

Si sabemos que nuestra confirmación más reciente fue una confirmación de combinación, podemos deshacerla con el siguiente comando:

git reset HEAD~

Por lo tanto, este comando deshará cualquier confirmación de combinación junto con cualquier otra confirmación de la otra rama.

Ver la confirmación de fusión usando git log

Usando el comando git reset HEAD~

Aquí podemos ver que la confirmación de fusión y cualquier otra confirmación de la rama maestra se eliminan de aquí.

Deshacer una fusión enviada a un control remoto 

Entonces, primero empujemos una fusión al repositorio remoto para que pueda ver que se ha agregado un repositorio remoto aquí en la carpeta 5 y luego los cambios se envían al repositorio remoto. Aquí podemos ver que el archivo con el nombre de bug-fix.txt se fusiona desde la rama de funciones a la rama maestra, luego agregamos un repositorio remoto y luego enviamos estos cambios al repositorio remoto en Github.

Ver la confirmación de fusión

Empujando los cambios al repositorio remoto

Cambios enviados al repositorio remoto

Ahora, si desea deshacer la confirmación de combinación que ya se está enviando al repositorio remoto, use el comando de la siguiente manera:

git revert -m 1 commit-id

Ver la confirmación de fusión

Usando el comando git revert -m 1 commit-id

Aquí podemos ver que la combinación se deshace y cualquier otro archivo de la rama de características se revierte y ahora podemos ver solo 2 confirmaciones que son solo de la rama maestra.

Así que ahora hemos eliminado con éxito nuestra fusión junto con otros archivos de la rama de funciones. Ahora, si queremos volver a agregar la fusión al repositorio remoto, seguiremos el siguiente procedimiento. 

Deshacer la reversión para que podamos enviar esta combinación de vuelta al repositorio remoto

Empujando los cambios al repositorio remoto

Merge se devuelve con éxito al repositorio remoto 

Ahora, si desea volver a revertir esta fusión y cualquier otro cambio de la rama de características, hay un flujo de trabajo más en lugar de usar este comando git revert -m 1 commit-id , ya que puede ayudarnos a evitar cualquier conflicto de fusión entre las ramas también. .

Fusión de los cambios de la   rama maestra a la rama característica

Ver la confirmación de fusión

Revertir la confirmación de fusión

Al usar este comando, se abrirá un editor y en él, debe escribir un breve mensaje de confirmación para que podamos evitar cualquier conflicto de fusión entre ramas.

Escribir el mensaje corto para evitar compromisos

Fusión de los cambios de la rama maestra a la rama de características

Envío de cambios al repositorio remoto

Deshaga los cambios de la  rama de funciones y aquí podemos ver que los cambios realizados por la rama de funciones se revierten ahora

Revertir algunas confirmaciones existentes

Entonces, ahora, si desea revertir algunas confirmaciones existentes de su repositorio remoto, especialmente cuando esas confirmaciones se envían al repositorio remoto. 

Por ejemplo, acaba de enviar un código incorrecto al repositorio remoto que tenía algunos errores y necesita revertirlo, es decir, retroceder para ese caso de uso, podemos usar el comando git revert HEAD ~ 1. Así que ahora veamos cómo resolver este problema.

Crear un nuevo archivo y enviarlo

Empujó los cambios al repositorio remoto y luego hizo algunas modificaciones en el archivo y lo confirmó

Después, debe crear una nueva confirmación porque registra estas nuevas confirmaciones para revertir las confirmaciones anteriores.

Usando git revert HEAD~1

Al usar el comando git revert HEAD~1, se abrirá un editor para usted y luego tenemos un breve mensaje de confirmación allí.

Después de esto, envíe estos cambios al tipo de repositorio remoto con el comando git push nombre_remoto

Aquí podemos ver que la confirmación anterior se ha revertido

Publicación traducida automáticamente

Artículo escrito por ankitmahajan852 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Categories Git

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *