Jak mogę usunąć wszystkie moje skrytki Git jednocześnie?
Mówiąc konkretnie, wpisując jedno polecenie.
Jak mogę usunąć wszystkie moje skrytki Git jednocześnie?
Mówiąc konkretnie, wpisując jedno polecenie.
Odpowiedzi:
Następujące polecenie usuwa wszystkie skrytki:
git stash clear
Z dokumentacji git :
clear
Usuń wszystkie ukryte stany.
WAŻNE OSTRZEŻENIE: Stany te będą wówczas podlegać przycinaniu i ich odzyskanie może być niemożliwe (...).
stash drop
(” Usuń pojedynczy stan ukryty z listy stash Kiedy nie <zapas> jest podana, to usuwa ostatnią jeden (...).. «) nie odpowiedzieć na pytanie (» Jak mogę usunąć wszystko z moje skrypty Git naraz? ”)?
git stash clear
aby potwierdzić, czy wszystko zostało wyczyszczone, użyj -git stash list
git
jest praktycznie niemożliwa do znalezienia! git-scm.com/docs/git-stash
git help <command>
to najlepszy sposób na uzyskanie dokumentacji (i jest całkiem niezły). W tym przypadku git help stash
wyraźnie pokaż, że git stash clear
tak się dzieje (nie powstrzymało mnie to od pierwszego przyjścia do SO i poprawienia odpowiedzi ... ale to mówi o mnie więcej niż git
: D)
Istnieją dwa sposoby usunięcia skrytki:
$ git stash drop <stash_id>
.$ git stash clear
.Używaj obu z nich ostrożnie, może być trudno przywrócić usunięte skrytki.
Oto artykuł referencyjny .
to polecenie umożliwia przeglądanie wszystkich ukrytych zmian.
git stash list
Oto następujące polecenie: użyj go, aby usunąć wszystkie ukryte zmiany
git stash clear
Teraz, jeśli chcesz usunąć jedną z ukrytych zmian z obszaru ukrytego
git stash drop stash@{index} // here index will be shown after getting stash list.
Uwaga:
git stash list
umożliwia uzyskanie indeksu z obszaru zapasów git.
git stash drop 'stash@{index}'
z apostrofami.
Chciałem zachować kilka ostatnich skrytek, ale usunę wszystko inne.
Poniewa wszystkie skrytki zostają przenumerowane po upuszczeniu, w rzeczywistości jest to łatwe do wykonania. Aby usunąć wszystkie skrytki starsze niż skrytka @ {19}:
while git stash drop 'stash@{20}'; do true; done
git stash pop 3
zamiast tego można odwołać się do 3. skrytki z listy skrytek ? Chciałem wiedzieć, czy możemy używać while
pętli i upuszczać skrytki za pomocą wartości indeksu.
Miałem inne wymaganie, jak tylko kilka skrytek musi zostać usuniętych, w takim przypadku pomocny byłby kod poniżej.
#!/bin/sh
for i in `seq 5 8`
do
git stash drop stash@{$i}
done
/ * usunie indeks od 5 do 8 * /
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
jeśli chcesz usunąć najnowszą skrytkę lub dowolny konkretny indeks -
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
jeśli chcesz usunąć wszystkie zapasy na raz -
> git stash clear
>
> git stash list
>
Ostrzeżenie : po zakończeniu nie możesz przywrócić swojej skrytki
Aby usunąć wszystkie skrytki starsze niż 40 dni, użyj:
git reflog expire --expire-unreachable=40.days refs/stash
Dodaj, --dry-run
aby zobaczyć, które skrytki są usuwane.
Zobacz https://stackoverflow.com/a/44829516/946850, aby uzyskać wyjaśnienie i wiele więcej szczegółów.