74 lines
3.0 KiB
Markdown
74 lines
3.0 KiB
Markdown
---
|
|
title: Git Stash
|
|
localeTitle: Git Stash
|
|
---
|
|
## Git Stash
|
|
|
|
O Git possui uma área chamada stash, onde você pode armazenar temporariamente um instantâneo de suas alterações sem comprometê-las com o repositório. É separado do diretório de trabalho, da área de preparação ou do repositório.
|
|
|
|
Essa funcionalidade é útil quando você faz alterações em uma ramificação que não está pronta para confirmar, mas precisa alternar para outra ramificação.
|
|
|
|
### Stash Changes
|
|
|
|
Para salvar suas alterações no stash, execute o comando:
|
|
|
|
```shell
|
|
git stash save "optional message for yourself"
|
|
```
|
|
|
|
Isso salva suas alterações e reverte o diretório de trabalho para a aparência do último commit. As alterações ocultas estão disponíveis em qualquer ramificação nesse repositório.
|
|
|
|
Observe que as alterações que você deseja ocultar precisam estar nos arquivos rastreados. Se você criou um novo arquivo e tentar esconder as alterações, poderá receber o erro `No local changes to save` .
|
|
|
|
### Visualizar alterações ocultas
|
|
|
|
Para ver o que está no seu stash, execute o comando:
|
|
|
|
```shell
|
|
git stash list
|
|
```
|
|
|
|
Isso retorna uma lista de seus instantâneos salvos no formato `stash@{0}: BRANCH-STASHED-CHANGES-ARE-FOR: MESSAGE` . A parte `stash@{0}` é o nome do stash e o número nas chaves ( `{ }` ) é o índice desse stash. Se você tiver vários conjuntos de alterações armazenados, cada um deles terá um índice diferente.
|
|
|
|
Se você esqueceu quais alterações foram feitas no stash, você pode ver um resumo delas com `git stash show NAME-OF-STASH` . Se você quiser ver o layout típico do patch no estilo diff (com os + e os 's' para alterações linha por linha), você pode incluir a opção `-p` (para patch). Aqui está um exemplo:
|
|
|
|
```shell
|
|
git stash show -p stash@{0}
|
|
|
|
# Example result:
|
|
diff --git a/PathToFile/fileA b/PathToFile/fileA
|
|
index 2417dd9..b2c9092 100644
|
|
--- a/PathToFile/fileA
|
|
+++ b/PathToFile/fileA
|
|
@@ -1,4 +1,4 @@
|
|
-What this line looks like on branch
|
|
+What this line looks like with stashed changes
|
|
```
|
|
|
|
### Recuperar alterações ocultas
|
|
|
|
Para recuperar as alterações do stash e aplicá-las ao ramo atual em que você está, você tem duas opções:
|
|
|
|
1. `git stash apply STASH-NAME` aplica as alterações e deixa uma cópia no stash
|
|
2. `git stash pop STASH-NAME` aplica as alterações e remove os arquivos do stash
|
|
|
|
Pode haver conflitos quando você aplica alterações. Você pode resolver os conflitos semelhantes a uma mesclagem ( [consulte Mesclar o Git para obter detalhes](https://guide.freecodecamp.org/git/git-merge/) ).
|
|
|
|
### Excluir alterações ocultas
|
|
|
|
Se você quiser remover as alterações ocultas sem aplicá-las, execute o comando:
|
|
|
|
```shell
|
|
git stash drop STASH-NAME
|
|
```
|
|
|
|
Para limpar todo o stash, execute o comando:
|
|
|
|
```shell
|
|
git stash clear
|
|
```
|
|
|
|
### Mais Informações:
|
|
|
|
* O comando `git merge` : [fCC Guide](https://guide.freecodecamp.org/git/git-merge/)
|
|
* Documentação do Git: [stash](https://git-scm.com/docs/git-stash) |