Deshacer cambios en Git
-
Use el comando
git log
para verificar el historial de commits en Git -
Use el comando
git clean
para deshacer cambios en Git -
Use el comando
git revert
para deshacer cambios en Git -
Use el comando
git reset
para deshacer cambios en Git
Este tutorial cubre los diversos comandos para deshacer cambios en sus repositorios locales y remotos. Estos comandos incluyen:
git clean
git reset
git revert
Use el comando git log
para verificar el historial de commits en Git
Primero veamos cómo verificamos el historial de nuestras commits. Comprobamos esto usando el comando git log
.
pc@JOHN MINGW64 ~/Git (main)
$ git log
commit 195e5c362975354d62ebc469da2e3cd276c7da03 (HEAD -> main)
Author: John <wachirajohnie11@gmail.com>
Date: Mon Feb 21 12:11:12 2022 +0300
commit 7b19db4b35c1ca15e5ecb8df1f805d44aad62e5f
Author: John <wachirajohnie11@gmail.com>
Date: Mon Feb 21 10:09:31 2022 +0300
first commit
El comando solo muestra el historial de su rama de trabajo. Para verificar todas las ramas, use el siguiente comando.
git log --branches=*
Use el comando git checkout
para ver un commit específica, como se muestra a continuación.
Ahora puede acceder a los archivos sin alterar el estado actual de su proyecto. Utilice el comando git checkout main
para volver al espacio de trabajo del proyecto actual.
Use el comando git clean
para deshacer cambios en Git
Usamos el comando git clean
para deshacer cambios en archivos sin seguimiento. No puede deshacer un comando git clean
.
- La opción
git clean -n
actúa como un comando de prueba. Solo muestra los archivos sin seguimiento, pero no los elimina.
Ejemplo:
```bash
pc@JOHN MINGW64 ~/Git (main)
$ git clean -n
Would remove Hello world.txt
Would remove Test1.txt
```
- El comando
git clean --force
elimina todos los archivos y carpetas sin seguimiento en su directorio de trabajo. Puede usar el comando.gitignore
para lanzar excepciones.
Ejemplo:
```bash
pc@JOHN MINGW64 ~/Git (main)
$ git clean --force
Removing Hello world.txt
Removing Test1.txt
```
Comprobemos si los archivos están en nuestro directorio.
```bash
pc@JOHN MINGW64 ~/Git (main)
$ git status
On branch main
nothing to commit, working tree clean
```
La salida muestra una rama limpia. El comando eliminó los archivos con éxito.
Use el comando git revert
para deshacer cambios en Git
El comando git revert
actúa sobre los cambios realizados por un commit y los sobrescribe. Lo usamos para volver a un punto y hacer cambios.
Usemos el comando para cambiar nuestro first commit
.
git revert first commit
#[first commit [7b19db4] Revert 'first commit'
#1 file changed, 1 deletion(-)
Tienes que pasar una referencia de compromiso.
Use el comando git reset
para deshacer cambios en Git
El último comando que cubriremos es el git reset
. Este comando opera en el HEAD
.
- La opción
git reset --hard
cambia el commit especificada. Sin embargo, cualquier cambio en el índice de ensayo y su directorio de trabajo coincide con los cambios. Todas las commits por etapas se pierden en el proceso.
Ejemplo:
```bash
$ git reset --hard
HEAD is now at 78129a6 Revert "$first commit"
```
El comando ejecuta un hard reset al HEAD
.
- El comando
git reset --mixed
guarda los cambios del índice de preparación en su directorio de trabajo.
Ejemplo:
```bash
$ git reset --mixed
Unstaged changes after reset:
M .bash_history
M text.txt.txt
M text.txt.txt.bak
```
El comando ha guardado los cambios deshechos en nuestro directorio de trabajo desde la salida. Comprobemos el estado de nuestra rama.
```bash
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .bash_history
modified: text.txt.txt
modified: text.txt.txt.bak
Untracked files:
(use "git add <file>..." to include in what will be committed)
.bash_history.bak
no changes added to commit (use "git add" and/or "git commit -a")
```
- El comando
git reset --soft
solo cambia el historial de commits. El puntero por defecto es siempre elHEAD
.
Ejemplo:
```bash
pc@JOHN MINGW64 ~/Git (main)
$ git reset --soft
pc@JOHN MINGW64 ~/Git (main)
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .bash_history
modified: text.txt.txt
modified: text.txt.txt.bak
Untracked files:
(use "git add <file>..." to include in what will be committed)
.bash_history.bak
no changes added to commit (use "git add" and/or "git commit -a")
```
A partir del resultado anterior, nuestro directorio de trabajo y el índice de preparación no se modifican. Use el hash de su confirmación para restablecer un commit específica.
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