À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.
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:
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:
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:
Na saída fornecida, o trabalho é salvo com o comando git stash. Podemos verificar o status do repositório.
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:
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:
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:
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:
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:
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:
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:
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:
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 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:
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:
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:
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
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.