Aplicar Stashes en Git

John Wachira 23 agosto 2022
Aplicar Stashes en Git

Este artículo cubrirá las diferentes formas de aplicar stashes en Git. Mostrará los pasos para aplicar un stash específico de Git.

Aplicar Stashes en Git

Usamos el git stash list para mostrar nuestro stash Git si no lo sabes.

pc@JOHN MINGW64 ~/Git (main)
$ git stash list
stash@{0}: WIP on main: 78129a6 Revert "$git status"
stash@{1}: WIP on main: 195e5c3 $git status

Puedes ver que tenemos dos escondites en nuestra rama de Git.

Ejecutar un git stash apply apuntará a la parte superior de su pila. Como se muestra a continuación, debe agregar un argumento si desea aplicar un alijo específico.

$ git stash apply stash@{stash_index}

En nuestro caso, queremos aplicar el índice 1 stash. Ejecutamos el siguiente comando.

$ git stash apply stash@{1}
Removing text.txt.txt
CONFLICT (modify/delete): Tutorial.txt deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of Tutorial.txt left in tree.
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    text.txt.txt
        modified:   text.txt.txt.bak
Unmerged paths:
  (use "git restore --staged <file>..." to unstage)
  (use "git add/rm <file>..." as appropriate to mark resolution)
        deleted by us:   Tutorial.txt
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .bash_history.bak
        Delftscopetech/
        New folder/
        file.patch

Sin embargo, cuando se aplica, este comando no elimina el alijo de su lista. Debe ejecutar un comando git stash pop.

Existe una disparidad entre git stash apply y git stash pop si este último aplica cambios y elimina el alijo de tu lista.

Veamos un ejemplo.

pc@JOHN MINGW64 ~/Git/Delftscopetech (main)
$ git stash pop stash@{0}
Removing README.md
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    README.md
no changes added to commit (use "git add" and/or "git commit -a")
Dropped stash@{0} (1531151482186b97f47e9b852ac29ddd194bd099)

Podemos ver a Git aplicar nuestro alijo y eliminarlo de nuestra salida anterior.

Una alternativa es ejecutar git stash drop stash@{Index}. Para borrar todos los alijos, ejecute el comando git stash clear.

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 Stash