Git depolarının tümünü bir kerede nasıl silebilirim?


1406

Git depolarının tümünü bir kerede nasıl silebilirim ?

Özellikle, tek bir komut yazarak.

Yanıtlar:


2461

Aşağıdaki komut tüm saklamaklarınızı siler:

git stash clear

Gönderen git belgeler :

clear

Tüm saklanmış durumları çıkarın.

ÖNEMLİ UYARI: Bu durumlar daha sonra budamaya maruz kalır ve iyileşmesi imkansız olabilir (...).


13
neden git stash damla değil?
user20358

137
@ user20358: Çünkü stash drop(" . zula listeden tek sakladığı devlet çıkarın hiçbir <zulası> verildiğinde, en son birini kaldırır (...). ') sorusunu (' cevap vermez nasıl silebilir tüm arasında Git bir kerede saklanıyor? ")?
Tadeck

11
Kabul edilen cevaba ek olarak - git stash clear, tüm temizlenirse onaylamak için, kullanın -git stash list
kamal

2
@ jedd.ahyoung Bunun başka bir 1000 oyu daha olmalı. İçin belgeleri gitbulmak neredeyse imkansız! git-scm.com/docs/git-stash
Drenai

11
@Ryan: git help <command>belge almanın en iyi yoludur (ve aslında oldukça iyidir). Bu durumda, git help stashaçık bir şekilde git stash cleartapu yapıldığını gösterin (bu beni önce SO'ya gelmemi ve cevabı desteklemedi ... ama bu benim hakkımda daha fazlasını anlatıyor git: D)
Marco Massenzio

46

Zulayı silmenin iki yolu vardır:

  1. Artık belirli bir zulası gerekiyorsa, bunu silebilirsiniz: $ git stash drop <stash_id>.
  2. Sen ile repo adresinin stashes tüm silebilirsiniz: $ git stash clear.

Her ikisini de dikkatli kullanın, bir kez silinen zulayı geri almak zor olabilir.

İşte referans makale .


2
Terminalin kapatılmasının bununla bir ilgisi yoktur. git bir daemon değildir; sadece onu aradığınızda çalışır. Terminali kapattığınız hakkında hiçbir fikri yok.
DylanYoung

31

bu komut tüm saklanmış değişikliklere bakmanızı sağlar.

git stash list

İşte aşağıdaki komut, saklanan tüm değişikliklerinizi temizlemek için kullanın

git stash clear

Şimdi, saklanan alandan saklanan değişikliklerden birini silmek istiyorsanız

git stash drop stash@{index}   // here index will be shown after getting stash list.

Not: git stash listgit'in saklanma alanından indeks almanızı sağlar.


En azından Windows 10 kullanan VSCode'daki entegre terminal için, git stash drop 'stash@{index}'kesme işaretleriyle olduğunu belirtmek gerekir .
Oriol Miró

13

Birkaç yeni saklamak istedim, ama diğer her şeyi silmek istedim.

Biri düşürdüğünüzde tüm depolar yeniden numaralandırıldığından, bunun aslında süre ile yapılması kolaydır. Stash @ {19} 'dan daha eski tüm depoları silmek için:

while git stash drop 'stash@{20}'; do true; done

Bu, Git 2.11'de sunulan ve git stash pop 3bunun yerine stash listesinden 3. stash'a başvurabileceğiniz endekslenmiş değerler için geçerli mi? Ben whileindeks değerleri kullanarak döngü ve damla stashes kullanabilirsiniz olmadığını bilmek istedim .
tom_mai78101

Bu güzel ve zarif çözümün sadeliğini seviyorum!
dominik

3

Sadece birkaç stash kaldırılması gibi başka bir gereksinimi vardı, aşağıdaki kod bu durumda yardımcı olacaktır.

#!/bin/sh
for i in `seq 5 8`
do
   git stash drop stash@{$i}
done

/ * 5 ile 8 arasında indeks silecek * /


deneyinfor iterator in `seq 5 8`; git stash drop stash@{$iterator}; done
Chris McCowan

3
Düştüğünüzde, kalan depoların 1 puan yükseldiğini unutmayın. Dolayısıyla, 5'ten 8'e çıkarmak istiyorsanız, geriye doğru saymanız veya stash @ {5} 'yi dört kez kaldırmanız gerekir. Örneğin: for i in `seq 4`; do git stash drop 'stash@{5}'; done
çözgü

@ChrisMcCowan kodunuzda ayrıca eksik birdo
steezeburger

3

en son saklamayı veya herhangi bir dizinde kaldırmak istiyorsanız -

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

tüm zulayı bir kerede çıkarmak istiyorsanız -

> git stash clear
>

> git stash list
>

Uyarı : Bir kez bittiğinde, saklamanızı geri alamazsınız


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.