Eliminar una confirmación pero conservar los cambios en Git

John Wachira 15 febrero 2024
  1. Eliminar una confirmación pero conservar los cambios en Git
  2. Eliminar un compromiso y conservar los cambios con el comando git reset
Eliminar una confirmación pero conservar los cambios en Git

Este artículo describe los pasos necesarios para deshacer una confirmación de Git mientras se conservan los cambios introducidos por la misma confirmación. Cubriremos dos comandos que podemos usar que tendrán los mismos efectos.

Sin más preámbulos, entremos de inmediato.

Eliminar una confirmación pero conservar los cambios en Git

Usemos un ejemplo para explorar este concepto.

Suponiendo que tenemos el historial de confirmaciones que se muestra a continuación en nuestro repositorio, ¿cómo eliminamos la última confirmación pero conservamos los cambios?

Historial de confirmación de repositorio

Hay dos métodos que podemos emplear para lograr nuestro objetivo. Veamos el primer método, que es el más fácil.

Eliminar un compromiso y conservar los cambios con el comando git reset

Podemos utilizar el comando git reset para deshacer una confirmación conservando los cambios, como se muestra a continuación:

$ git reset HEAD~

Esto debería eliminar el compromiso Actualizar Config.py pero mantener los cambios en el archivo. Podemos ejecutar el comando git log para confirmar nuestro caso.

Deshacer una confirmación conservando los cambios

Si ejecuta el comando git status, verá que tiene cambios sin preparar. Esto no significa necesariamente que su archivo haya cambiado.

Cuando usamos el comando git reset sin una opción --soft o --hard, Git deshará la confirmación especificada sin cambiar los archivos afectados por la confirmación.

Puede agregar los cambios al índice y ejecutar el comando git commit --amend--no-edit para eliminar los cambios del índice y montarlos en la última confirmación.

Alternativamente, en lugar de eliminar la confirmación, puede continuar con el desarrollo y ejecutar el comando git commit --amend cuando sea el momento de realizar una nueva confirmación. En este punto, agregará sus nuevas modificaciones a la confirmación que desea eliminar y también podrá editar el mensaje de confirmación.

En pocas palabras, Git nos permite deshacer un compromiso y mantener los cambios introducidos por el mismo compromiso. Podemos usar el comando git reset y el comando git commit --amend para lograr nuestro objetivo.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - Git Commit