Git Revertir Confirmar Local
-
Deshacer cambios de confirmación usando
git reset
-
Deshacer cambios de confirmación usando
git revert
Cuando un ingeniero de software o un desarrollador web trabaja con Git, es obvio que empuja una gran cantidad de códigos y se compromete con el repositorio de Git diariamente, y mientras lo hace, surgirá la necesidad de deshacer o revertir una confirmación en particular o un conjunto de confirmaciones. de vez en cuando en un ambiente de equipo.
En este bloque, aprenderemos sobre las posibilidades disponibles para deshacer programas y comandos de Git una vez que se haya realizado la confirmación en la rama local.
Este documento intenta comprender la situación del compromiso que hicimos y qué tipo de deshacer podemos hacer para revertir el compromiso que aún no está sincronizado con la rama remota.
Antes de manejar la situación, debemos asegurarnos de que la necesitamos y queremos modificar los archivos y la información de confirmación. Porque en algunos casos, solo queremos editar nuestro compromiso, lo que se puede hacer a través del comando de Git git amend
.
Pero si queremos deshacer el comando, esta guía es el mejor lugar para aprender al respecto. Aprendamos cómo hacerlo de manera efectiva usando el comando Git a continuación.
Deshacer cambios de confirmación usando git reset
Hay múltiples situaciones en las que queremos deshacer la última confirmación, y la forma más sencilla de resolver el problema y deshacer la última confirmación de Git es usar el comando git reset
con la marca --soft
añadida. Esta función de Git conservará los cambios en nuestros archivos en la rama local.
Para ello, tenemos que especificar el compromiso que queremos deshacer, es decir, HEAD~1
; aquí, queremos deshacer la última confirmación, ya que es una práctica común que los desarrolladores necesitan deshacer la última confirmación, muy probablemente. Pero podemos mencionar cualquier confirmación que queramos deshacer.
Para estos casos, git reset
es la mejor opción, y el comando se muestra a continuación.
$ git reset --soft HEAD~1
A través de la opción restablecer
, nuestra rama HEAD
actual se proyectará a la revisión designada y regresará a la confirmación anterior a la revisión reciente, esto hace que nuestra última confirmación se deshaga y los cambios llegarán automáticamente a nuestra sección de archivos modificados.
Y con la ayuda de la bandera --soft
, los cambios que hemos realizado se conservan en la sección de estado de los archivos y no se pierden.
Además, si no queremos que se conserven nuestros cambios y estamos seguros de que ya no los necesitamos, entonces usaremos la bandera --hard
en lugar de la bandera --soft
.
Esto deshará permanentemente los cambios y todo se perderá. Para eliminar los cambios de forma permanente, el comando está debajo.
$ git reset --hard HEAD~1
Deshacer cambios de confirmación usando git revert
El comando git revert
se usa particularmente para desarrollar un nuevo compromiso que nos ayude a revertir los cambios del compromiso que se especifica. Este comando es bien conocido por revertir totalmente una confirmación sin eliminarla.
Si la confirmación ya se envió al repositorio remoto, es la mejor y más segura opción usar git revert
, ya que no sobrescribe el historial de confirmación.
El comando para revertir la última confirmación se encuentra a continuación.
git revert <commit to revert>
El nombre del commit es el id del commit
que queremos revertir; se puede recuperar mediante el comando de Git, que es el git log
. La mayoría de los desarrolladores prefieren git revert
a git reset
porque deshace los cambios con la ayuda del nuevo comando que procede con la misma operación de deshacer.
No descarta ni sobrescribe confirmaciones anteriores. Mientras que restablecer
descarta todos los registros de la confirmación poco atractiva y también cambia el historial de confirmación.
Ahora, depende de usted qué comando es mejor para usted en su caso.
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