Git iki kez sakla


99

Git dallarını hızlıca değiştirmem git stashgerekti , bu yüzden koştum , ancak dosyalarımdan birinin düzenlenmesi gerektiğinden tekrar çalıştırmak zorunda kaldım.

Bu yüzden git stashiki kez koştum ve dosyalarımı düzenlemeye geri dönmeye hazırım. Koştum git stash applyama ben sakladığı tüm dosyaları unstashed olduğunu ikna olmadım. Yapabileceğim bir şey var mı? Kontrol etmenin bir yolu var mı?

Ben çalıştırdığınızda git stash show, sadece benim iki git stashes son görüyoruz.

Hepsini göstermenin bir yolu var mı git stashes?


4
git stash list. İki zula yaptıysanız, iki git stash popkez arayın .
Felix Kling

Merhaba, düzelttiniz! Cevap olarak koymalısın. Çok teşekkürler
stephenmurdoch

Yanıtlar:


181

İle tüm zulaların bir listesini alabilirsiniz

git stash list

sana benzer bir şey gösterecek

stash@{0}: WIP on dev: 1f6f8bb Commit message A
stash@{1}: WIP on master: 50cf63b Commit message B

İki zula yaptıysanız, iki git stash popkez arayın . Aksine git stash apply, popuygular ve kaldırır son zulası.

Ayrıca belirli bir zulaya da başvurabilirsiniz, örneğin

git stash show stash@{1}

veya

git stash apply stash@{1}

Çok teşekkürler. Günümü kurtardım.
stephenmurdoch

26
git stash popAynı işlemede her iki saklamayı da istediğiniz için iki kez yapmak istiyorsanız ancak "hatasıyla karşılaşırsanız: Aşağıdaki dosyalardaki yerel değişikliklerinizin üzerine birleştirme ile yazılır:" 2.'nizde git stash pop, şunları yapabilirsiniz: 1) git stash pop, 2) git add .ve 3 ) git stash pop.
gabe

Bu bana yardımcı oldu. İzlenmemiş yeni dosyaları saklamak için "git stash" ve ardından "git stash --all" yapmam gerekiyordu. Git stash pop yapmak iki kez çalışmıyordu. Sadece daha sonraki zulayı geri aldım.
Leopold Kristjansson

0

Bu durumla karşılaştım, iki zula yaptım ve git stash pop son zulayı çözdü. Ben de yaptım

git stash list

git stash pop stash@{1}

Bu ilk zulamı serbest bıraktı ve tüm değişikliklerimi geri görebildim!


0

Postada birkaç farklı soru sordunuz ve diğer katılımcılar bunlardan bazılarına iyi yanıtlar verdiler. En önemli görünen ancak cevaplanmamış olan şudur:

>> Sakladığım tüm dosyaların sıkıştırılmamış olduğuna ikna olmadım. Yapabileceğim bir şey var mı? Kontrol etmenin bir yolu var mı?

Zulayı yerel ağaçla karşılaştırın

Sanırım yapmak istediğiniz, zulayı yerel çalışma ağacınızla karşılaştırmak . -P anahtarını stash komutuna koyabilirsiniz ve iyisinizdir:

git stash show -p

Peşinde olduğunuz belirli bir tanesi varsa , zula listesinden onun git stash adını veya kimliğini kullanın :

git stash show -p stash@{3}

Belki fark kullanın?

Git becerilerinizi geliştirmekle gerçekten ilgileniyorsanız, her zaman bir fark için gidebilirsiniz. Zulada bulunanlar ile ana daldaki HEAD'e kaydedilenler arasındaki farkı görmek için aşağıdaki fark kullanılabilir:

git diff stash@ master

Size zula geçmişindeki kullanışlı olabilecek öğelerin değişikliklerini gösterecek bir başka düzgün komut da --stat:

git stash list --stat

Ama bence basit cevap doğru cevap. Sadece -p anahtarını kullanın ve muhtemelen rafa kaldırdığınız zulanın geri gelip gelmediğini göreceksiniz .

 git stash show -p stash@{3}
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.