Como posso excluir todos os meus stash do Git de uma só vez?
Especificamente, quero dizer, digitando um comando.
Como posso excluir todos os meus stash do Git de uma só vez?
Especificamente, quero dizer, digitando um comando.
Respostas:
O comando a seguir exclui todos os seus stashes:
git stash clear
Na documentação do git :
clear
Remova todos os estados ocultos.
AVISO IMPORTANTE: Esses estados estarão sujeitos a poda e podem ser impossíveis de recuperar (...).
stash drop
(" Remover um único estado Stashed da lista esconderijo Quando nenhuma <estoque> é dado, ele remove o mais recente (...).. ') não responder à pergunta (' Como posso apagar tudo de meu Git esconde de uma só vez? ")?
git stash clear
, para confirmar se tudo desmarcado, use -git stash list
git
é praticamente impossível de encontrar! git-scm.com/docs/git-stash
git help <command>
é a melhor maneira de obter documentação (e, na verdade, é muito bom). Nesse caso, git help stash
mostre claramente que git stash clear
a ação (isso não me impediu de chegar ao SO primeiro e aprovar a resposta ... mas isso me diz mais sobre mim do que git
: D)
Existem duas maneiras de excluir um stash:
$ git stash drop <stash_id>
.$ git stash clear
.Use os dois com cautela, talvez seja difícil reverter os stashes excluídos.
Aqui está o artigo de referência .
este comando permite que você procure todas as alterações ocultas.
git stash list
Aqui está o comando a seguir, use-o para limpar todas as alterações ocultas
git stash clear
Agora, se você deseja excluir uma das alterações ocultas da área oculta
git stash drop stash@{index} // here index will be shown after getting stash list.
Nota:
git stash list
permite que você obtenha o índice da área de stash do git.
git stash drop 'stash@{index}'
com apóstrofos.
Eu queria manter alguns esconderijos recentes, mas excluir todo o resto.
Como todos os stashes são renumerados quando você solta um, isso é realmente fácil de fazer enquanto. Para excluir todos os stash anteriores ao stash @ {19}:
while git stash drop 'stash@{20}'; do true; done
git stash pop 3
? Eu queria saber se podemos usar o while
loop e soltar stashes usando valores de índice.
Eu tinha outro requisito, pois apenas alguns stash precisavam ser removidos; o código abaixo seria útil nesse caso.
#!/bin/sh
for i in `seq 5 8`
do
git stash drop stash@{$i}
done
/ * excluirá de 5 a 8 índices * /
for iterator in `seq 5 8`; git stash drop stash@{$iterator}; done
for i in `seq 4`; do git stash drop 'stash@{5}'; done
do
se você deseja remover o esconderijo mais recente ou em qualquer índice específico -
gota do stash do git type_your_index
> git stash list
stash@{0}: abc
stash@{1}: xyz
stash@{1}: pqr
> git stash drop 0
Dropped refs/stash@{0}
> git stash list
stash@{0}: xyz
stash@{1}: pqr
se você deseja remover todo o estoque de uma só vez -
> git stash clear
>
> git stash list
>
Aviso : Uma vez feito, você não pode reverter seu estoque
Para excluir todos os stashes com mais de 40 dias, use:
git reflog expire --expire-unreachable=40.days refs/stash
Adicione --dry-run
para ver quais stashes foram excluídos.
Consulte https://stackoverflow.com/a/44829516/946850 para obter uma explicação e muito mais detalhes.