Conhecendo o basico do comando git stash

Posted on Sat 16 April 2022 in DevOps • 2 min read

Diversas vezes quando esta trabalhando em uma parte do seu projeto e precisa mudar de branch por um tempo para trabalhar em outro codigo voce pode se encontrar em um problema, não fazer o commit por um trabalho incompleto para continuar depois. A resposta para esse problema é git stash

Nesse post, vamos abordar de forma superficial a utilização desse comando

Fazendo o Stash

Após algumas alterações no seu projeto, se você executar git status vai receber uma saida similar a essa:

$ git status
On branch main
Your branch is up to date with 'origin/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:   Dockerfile

no changes added to commit (use "git add" and/or "git commit -a")

Agora você precisa mudar de branch, mas não vai enviar a alteração do que esta trabalhando, incluindo os arquivos que não estão rastreados. Vamos fazer um stash

$ git stash push --include-untracked
Saved working directory and index state WIP on main: 44cfadb Create function

Pronto, temos o nosso trabalho salvo na pilha stash e podemos navegar entre as branches sem preocupação. Para ver a pilha salva no stash, basta executar o git stash list e a saida sera similar a essa:

$ git stash list
stash@{0}: WIP on main: 44cfadb Create function

Caso queira ver os arquivos que estão na pilha, basta executar git stash show

$ git stash show
 Dockerfile | 1 +
 1 file changed, 1 insertion(+)

Caso queira exibir os arquivos não rastreados, o comando é esse abaixo:

$ git show 'stash@{0}^3'
    untracked files on main: 44cfadb Create function

diff --git a/script.sh b/script.sh
new file mode 100644
index 0000000..bc1ea2f
--- /dev/null
+++ b/script.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+[[ -z $1 ]]; echo $ERR

Para trazer os arquivos da nossa pilha, temos dois caminhos.

O primeiro, mais simples e direto, é executar o comando git stash pop, o stash será aplicado e apagado da pilha. O segundo, é executar o git stash apply, ele tenta somente aplicar o stash e não remove da pilha, para remover será necessario aplicar o comando git stash drop com o nome do stash que deseja remover.

Esse foi uma pequena explicação de como utilizar o comando stash.

Simples assim 😆

git