Come posso eliminare tutte le mie scorte di Git contemporaneamente?
In particolare intendo, digitando un comando.
Come posso eliminare tutte le mie scorte di Git contemporaneamente?
In particolare intendo, digitando un comando.
Risposte:
Il seguente comando cancella tutti i tuoi stash:
git stash clear
Dalla documentazione git :
clear
Rimuovi tutti gli stati nascosti.
AVVERTENZA IMPORTANTE: quegli stati saranno quindi soggetti a potatura e potrebbe essere impossibile recuperarli (...).
stash drop
(" Rimuovere un singolo stato Stashed dalla lista scorta Quando nessun <scorta> è dato, esso rimuove l'ultimo uno (...).. ') non rispondere alla domanda (' Come posso cancellare tutto di il mio Git si blocca subito? ")?
git stash clear
, per confermare se tutto è stato cancellato, utilizzare -git stash list
git
è praticamente impossibile da trovare! git-scm.com/docs/git-stash
git help <command>
è il modo migliore per ottenere la documentazione (e, in realtà, è abbastanza buono). In questo caso, git help stash
mostra chiaramente che git stash clear
fa l'atto (questo non mi ha impedito di venire prima a SO e di votare la risposta ... ma questo ti dice di più su di me di git
: D)
Esistono due modi per eliminare uno stash:
$ git stash drop <stash_id>
.$ git stash clear
.Usali entrambi con cautela, forse è difficile ripristinare gli stash una volta eliminati.
Ecco l' articolo di riferimento .
questo comando consente di visualizzare tutte le modifiche nascoste.
git stash list
Ecco il comando seguente usalo per cancellare tutte le modifiche nascoste
git stash clear
Ora, se si desidera eliminare una delle modifiche nascoste dall'area di scorta
git stash drop stash@{index} // here index will be shown after getting stash list.
Nota:
git stash list
consente di ottenere l'indice dall'area stash di git.
git stash drop 'stash@{index}'
, con apostrofi.
Volevo mantenere alcune sequenze recenti, ma eliminare tutto il resto.
Poiché tutti gli stash vengono rinumerati quando si rilascia uno, questo è in realtà facile da fare con while. Per eliminare tutti gli stash precedenti a stash @ {19}:
while git stash drop 'stash@{20}'; do true; done
git stash pop 3
? Volevo sapere se possiamo usare il while
loop e rilasciare gli stash usando i valori dell'indice.
Avevo un altro requisito come rimuovere solo pochi oggetti, in questo caso il codice sotto sarebbe stato utile.
#!/bin/sh
for i in `seq 5 8`
do
git stash drop stash@{$i}
done
/ * cancellerà da 5 a 8 indice * /
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 desideri rimuovere l'ultima scorta o qualsiasi indice particolare -
git stash drop 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 vuoi rimuovere tutta la scorta contemporaneamente -
> git stash clear
>
> git stash list
>
Avvertenza : una volta terminato, non è possibile ripristinare la scorta
Per eliminare tutti gli stash di età superiore a 40 giorni, utilizzare:
git reflog expire --expire-unreachable=40.days refs/stash
Aggiungi --dry-run
per vedere quali elementi vengono eliminati.
Vedi https://stackoverflow.com/a/44829516/946850 per una spiegazione e molti più dettagli.