logo

Git Stash

Às vezes você deseja trocar de ramificação, mas está trabalhando em uma parte incompleta do seu projeto atual. Você não quer comprometer um trabalho incompleto. O stashing do Git permite que você faça isso. O comando git stash permite que você troque de branch sem comprometer o branch atual.

A figura abaixo demonstra as propriedades e a função do stashing em relação ao repositório e ao diretório de trabalho.

Git Stash

Geralmente, o significado do stash é ' guarde algo com segurança em um lugar escondido .' O sentido no Git também é o mesmo para stash; O Git salva temporariamente seus dados com segurança, sem compromisso.

O stashing pega o estado confuso do seu diretório de trabalho e o salva temporariamente para uso posterior. Muitas opções estão disponíveis com git stash. Algumas opções úteis são fornecidas abaixo:

    Esconderijo Git Git stash salvar Lista de estoque do Git Git stash se aplica Mudanças no estoque do Git Git stash pop Queda de estoque do Git Git stash limpo Ramo de estoque do Git

Esconder trabalho

Vamos entender isso com um cenário em tempo real. Fiz alterações em meu projeto GitExample2 em dois arquivos de duas ramificações distintas. Estou confuso e ainda não editei totalmente nenhum arquivo. Então, quero salvá-lo temporariamente para uso futuro. Podemos armazená-lo para salvá-lo como seu status atual. Para armazenar, vamos dar uma olhada no status atual do repositório. Para verificar o status atual do repositório, execute o comando git status. O comando git status é usado como:

algoritmo de Bellford

Sintaxe:

 $ git status 

Saída:

Git Stash

Na saída acima, você pode ver o status de que há dois arquivos não rastreados design.css e novo arquivo.txt disponível no repositório. Para salvá-lo temporariamente, podemos usar o comando git stash. O comando git stash é usado como:

Sintaxe:

 $ git stash 

Saída:

Git Stash

Na saída fornecida, o trabalho é salvo com o comando git stash. Podemos verificar o status do repositório.

Git Stash

Como você pode ver, meu trabalho está guardado em sua posição atual. Agora, o diretório está limpo. Neste ponto, você pode alternar entre ramificações e trabalhar nelas.

Git Stash Save (salvando stashes com a mensagem):

No Git, as alterações podem ser armazenadas com uma mensagem. Para ocultar uma alteração com uma mensagem, execute o comando abaixo:

Sintaxe:

 $ git stash save '' 

Saída:

Git Stash

O stash acima será salvo com uma mensagem

Lista Git Stash (verifique os stashes armazenados)

Para verificar os stashes armazenados, execute o comando abaixo:

Sintaxe:

 $ git stash list 

Saída:

Git Stash

No caso acima, fiz um stash, que é exibido como ' stash@{0}: WIP no teste: arquivo CSS 0a1a475 '.

Se tivermos mais de um stash, ele exibirá todos os stashes, respectivamente, com IDs de stash diferentes. Considere a saída abaixo:

Git Stash

Ele mostrará todos os stashes com indexação como esconderijo@{0}: esconderijo@{1}: e assim por diante.

Aplicar Git Stash

Você pode reaplicar as alterações que acabou de armazenar usando o comando git stash. Para aplicar o commit, use o comando git stash, seguido pela opção apply. É usado como:

Sintaxe:

bourne novamente concha
 $ git stash apply 

Saída:

Git Stash

A saída acima restaura o último estoque. Agora, se você verificar o status do repositório, ele mostrará as alterações feitas no arquivo. Considere o abaixo saída:

Git Stash

Na saída acima, você pode ver que o repositório foi restaurado ao seu estado anterior antes do stash. Está mostrando a saída como ' Mudanças não preparadas para commit .'

No caso de mais de um stash, você pode usar o comando 'git stash apply' seguido pelo ID do índice stash para aplicar o commit específico. É usado como:

Sintaxe:

 $ git stash apply 

Considere a saída abaixo:

Saída:

Git Stash

Se não especificarmos um stash, o Git pega o stash mais recente e tenta aplicá-lo.

Mudanças no Git Stash

Podemos rastrear os stashes e suas alterações. Para ver as alterações no arquivo antes e após a operação do stash, execute o comando abaixo:

Sintaxe:

 $ git stash show 

O comando acima mostrará o arquivo que está armazenado e as alterações feitas nele. Considere a saída abaixo:

Saída:

Git Stash

A saída acima ilustra que há dois arquivos armazenados e duas inserções realizadas neles.

Podemos rastrear exatamente quais alterações são feitas no arquivo. Para exibir o conteúdo alterado do arquivo, execute o comando abaixo:

Sintaxe:

 $ git stash show -p 

Aqui, -p significa estoque parcial. O comando fornecido mostrará os arquivos e conteúdo editados, considere a saída abaixo:

Saída:

Git Stash

A saída acima mostra o nome do arquivo com conteúdo alterado. Ele age da mesma forma que o comando git diff. O git diferença O comando também mostrará a saída exata.

Git Stash Pop (reaplicando alterações armazenadas)

Git permite que o usuário aplique novamente os commits anteriores usando o comando git stash pop. A opção popping remove as alterações do stash e as aplica ao seu arquivo de trabalho.

atalhos de teclado linux

O comando git stash pop é bastante semelhante ao git stash apply. A principal diferença entre esses dois comandos é o comando stash pop que exclui o stash da pilha após ser aplicado.

Sintaxe:

 $ git stash pop 

O comando acima irá reaplicar os commits anteriores ao repositório. Considere a saída abaixo.

Saída:

Git Stash

Git Stash Drop (Desinstalar)

O git stash drop O comando é usado para excluir um stash da fila. Geralmente, ele exclui o stash mais recente. Deve-se ter cuidado antes de usar o comando stash drop, pois é difícil desfazer se for aplicado uma vez.

A única maneira de reverter isso é não fechar o terminal após excluir o stash. O comando stash drop será usado como:

Sintaxe:

 $ git stash drop 

Saída:

Git Stash

Na saída acima, o estoque mais recente (esconderijo@{0}) foi retirado de três esconderijos. O comando stash list lista todos os stashes disponíveis na fila.

Também podemos excluir um determinado estoque da fila. Para excluir um determinado stash dos stashes disponíveis, passe o stash id no comando stash drop. Será processado como:

Sintaxe:

 $ git stash drop 

Suponha que eu tenha dois stashes disponíveis em minha fila e não queira descartar meu stash mais recente, mas quero excluir o mais antigo. Então, será operado como:

 $ git stash drop stash@{1} 

Considere a saída abaixo:

Git Stash

Na saída acima, o commit esconderijo@{1} foi excluído da fila.

Git Stash Limpar

O git stash limpo O comando permite excluir todos os stashes disponíveis de uma vez. Para excluir todos os stashes disponíveis, execute o comando abaixo:

Sintaxe:

 $ git stash clear 

isso excluirá todos os stashes que existem no repositório.

Saída:

Git Stash

Todos os stashes são excluídos na saída acima. O comando git stash list está em branco porque não há stashes disponíveis no repositório.

Ramo Git Stash

Se você escondeu algum trabalho em um branch específico e continuou trabalhando nesse branch. Então, isso pode criar um conflito durante a fusão. Portanto, é bom armazenar o trabalho em uma filial separada.

O comando git stash branch permite ao usuário armazenar o trabalho em uma ramificação separada para evitar conflitos. A sintaxe deste branch é a seguinte:

Sintaxe:

 $ git stash branch 

O comando acima criará um novo branch e transferirá o trabalho armazenado nele. Considere a saída abaixo:

Saída:

instrução java if else
Git Stash

Na saída acima, o trabalho armazenado é transferido para uma ramificação de teste recém-criada. Isso evitará o conflito de mesclagem no branch master.