Deshacer un commit antes de enviar un repositorio remoto en Git
Este tutorial enseña cómo restablecer un commit que no se envió al repositorio remoto en Git, un sistema de control de versiones que usamos para realizar un seguimiento de los cambios realizados en los archivos en nuestro directorio de proyectos.
En Git, los commits se utilizan para realizar un seguimiento de los cambios realizados en los archivos. A veces, podemos confirmar los cambios de los archivos localmente y luego sentir que esos cambios ya no son relevantes.
Ahora queremos restablecer este compromiso en lugar de enviar este compromiso al repositorio remoto. Podemos realizar esta tarea de restablecer un commit que aún no se ha enviado a control remoto mediante el uso del comando git reset
.
Deshacer un commit antes de enviar al repositorio remoto en Git
Usamos Git en un entorno de desarrollo colaborativo para realizar un seguimiento de los cambios realizados en los archivos. Git realiza esta tarea de rastrear los cambios en los archivos mediante commits.
Cuando estamos satisfechos con los cambios realizados en los archivos, confirmamos los cambios en el repositorio Git de nuestro proyecto. En un flujo de trabajo básico de Git, una vez que hemos probado y completado nuestros cambios, agregamos los cambios al área de ensayo. Usamos el comando git add
para eso.
Después de agregar los cambios al área de preparación, ahora procedemos a enviar el cambio a nuestro repositorio de Git. Usamos el comando git commit
para confirmar los cambios.
Cada confirmación se usa para registrar una instantánea del estado del repositorio y el nombre, la marca de tiempo y el mensaje. Cuando confirmamos cambios usando el comando git commit
, esos cambios se confirman en el repositorio local de Git.
Este repositorio local está asociado con un repositorio Git remoto. Luego procedemos a enviar los commits del repositorio Git local al repositorio remoto. Usamos el comando git push
para lograrlo.
A veces, antes de enviar el commit al repositorio remoto, podemos sentir que el commit actual en el repositorio local ya no es necesaria y deseamos descartarla.
Así, para descartar el commit del repositorio local, podemos usar el comando git reset
. Supongamos que tenemos un historial de commits como el siguiente en nuestro repositorio de Git.
$ git log --oneline
453dcfc (HEAD -> master) minor change
bea3aac (origin/master, origin/HEAD) some change
b14f387 Other change
...
En el historial de commits, el commit 453dcfc
está en el repositorio local de Git pero aún no en el repositorio remoto. los commits anteriores también están en el repositorio remoto.
Por lo tanto, para descartar un commit presente en el repositorio local y aún no enviado al remoto, podemos ejecutar el comando git reset
de la siguiente manera.
$ git reset --soft HEAD~1
El comando git reset
anterior restablece el HEAD
actual mediante un commit. El comando git reset
con la opción --soft
no toca el área de preparación y el árbol de trabajo.
Mantiene todos nuestros archivos modificados como Changes to be committed
, como diría git status
, de la siguiente manera.
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
Ahora podemos volver a verificar el historial de commit y observar que el commit 453dcfc
ya no está presente.
$ git log --oneline
bea3aac (origin/master, origin/HEAD) some change
b14f387 Other change
...
Mostramos cómo restablecer un commit que no se envió al repositorio remoto en Git.
Para obtener más información, visite estos enlaces.
Artículo relacionado - Git Reset
- Diferencia entre Git RM --Cached y Git Reset File
- Diferencia entre los comandos Git Reset, Revert y Checkout
- Haga que la rama de desarrollo sea idéntica a la rama principal
- Revertir una combinación de Git con conflictos
- Varios métodos utilizados para eliminar los cambios locales de Git
- Deshacer cambios en Git