Git Stash Pop'u sil


133

Git stash pop yaptım ve şimdi bir sürü çatışmam var. Son kodumu daha önce git stash popişlemiştim, bu yüzden son işleme geri dönüp tüm çakışmalardan ve git stash popenjekte edilen koddan kurtulmanın bir yolu var mı?


Hala patlatılan çalışmanın kaydedilmesini mi istiyorsun yoksa bir daha asla görmek istemiyor musun?
jscs

1
Hayır, Popped çalışmasını istemiyorum. Zulayı 4 ay önce yaptım ve orada ne olduğundan emin değilim?
jdog

2
Saklamadan önce taahhüt edilmeyen şeyleri önemsiyor musunuz?
Andrew Marshall

4 ay öncekiler mi yoksa bugün olanlar mı? Bir saat önce sahip olduğum şeyi istiyorum.
jdog

5
Eğer uyuşmazlık varsa git stashgit, listeden zulayı bırakmayacaktır. Yani git reset --hard HEADpatlayan eseri yok etmez.
jwadsack

Yanıtlar:


189

Bu, stackoverflow'da zaten sorulmuş ve yanıtlanmıştır ( bkz.Git deposunu önceki bir işlemeye nasıl döndürürüm? ), Ancak basit yanıt:

git reset --hard HEAD

Bu, sorununuzla ilgilenmelidir. Bunun depodaki tüm taahhüt edilmeyen değişiklikleri kaldıracağını unutmayın.

Çakışma varsa zulanın korunduğunu unutmayın. Gönderen zula docs :

Devleti uygulamak çatışmalarla başarısız olabilir; bu durumda, zula listesinden kaldırılmaz. Çatışmaları elle çözmeniz ve git stash dropdaha sonra elle aramanız gerekir.


1
Bu, yerel deponuzu son işleme döndürür. Tüm taahhütlerinizi (son itmeden beri) sorunsuz bir şekilde itebilmelisiniz. Çalışmazsa, sonuçları önceki sorunuza geri gönderin). İyi şanslar.
MichaelMilom

28
Ama bu Zulan kaybolacağım
K. Weber

19
@ K.Weber git stash popçatışmaya neden olursa , zula zula listesinden silinmez.
Daiwei

1
Kimin 'aslında zulanı kaybetmeyeceksin' için olumlu oy verdiğinden emin değilim, az önce benimkini kaybettim
Anthony

4
Bir çözüm IMHO sayılmaz, çünkü o işaret edecektir uncommited değişiklikleri kaybedersiniz.
Ivan P

4

Sıfırlama, belirli dosyalarda da çağrılabilir:

git reset HEAD <filename>...

Yine de bir dosyayı sıfırlayamazsınız. Ancak değişiklikleri daha sonra ödeme yaparak geri alabilirsiniz:

git checkout -- <filename>...

Luke'un MichaelMilom cevabında belirttiği gibi, zulanız korunacak.

Bu, taahhüt edilmemiş yerel değişikliklerinizi kaybetmek istemediğinizde kullanışlıdır.


0

Çalışmayı bir daha saklanan zulada görmek istemiyorsanız, bu donanımdan sıfırlama kadar basittir:

git reset --hard HEAD

Bu, git'e çalışma dizininizde taahhüt edilmemiş değişikliklerin olduğu gerçeğini görmezden gelmesini ve çalışma dizinini, hazırlama alanını ayarlamasını ve belirttiğiniz işlemeye gitmesini söyler - bu durumda, tüm çalışmayı içeren mevcut HEAD az önce taahhüt ettim.

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.