Git'te bir stash nasıl isimlendirilir ve isme göre nasıl alınır?

Her zaman git stash save stashname yaparak bir zula ismi verebileceğinizi ve daha sonra git stash apply stashname yaparak bunu uygulayabileceğinizi düşünmüşümdür. Ancak öyle görünüyor ki bu durumda olan tek şey stashnamein zula açıklaması olarak kullanılacak olması.

Zulaya isim vermenin bir yolu yok mu? Değilse, eşdeğer işlevselliğe ulaşmak için ne önerirsiniz? Esasen, periyodik olarak uygulamak istediğim küçük bir zulam var, ancak her zaman git zula listesinde gerçek zula numarasının ne olduğunu aramak zorunda kalmak istemiyorum.

İşte böyle yapacaksın:

git stash save "my_stash"

Burada "my_stash" zula adıdır.

Bilmeniz gereken bazı faydalı şeyler daha var: Tüm zulalar bir yığın içinde saklanır. Tip:

git stash list

Bu, tüm zulalarınızı listeleyecektir.

Bir stash uygulamak ve stash yığınından çıkarmak için şunu yazın:

git stash pop stash@{n}

Bir stash uygulamak ve stash yığınında tutmak için şunu yazın:

git stash apply stash@{n}

Burada n saklanan değişikliğin indeksidir.

Yorumlar (8)

Eğer yeterince önemli olduğunu düşünüyorsanız, bir zulayı bir dala dönüştürebilirsiniz:

git stash branch  []

man sayfasından:

Bu, ın ilk oluşturulduğu commit'ten başlayarak adlı yeni bir dal oluşturur ve kontrol eder, da kaydedilen değişiklikleri yeni çalışma ağacına ve dizine uygular, ardından bu başarıyla tamamlanırsaı bırakır. Herhangi bir `` belirtilmediğinde, en son olanı uygular.

Bu, git stash save çalıştırdığınız dal, git stash apply'un çakışmalar nedeniyle başarısız olmasına neden olacak kadar değiştiyse kullanışlıdır. Zula, git stash çalıştırıldığında HEAD olan commit'in üzerine uygulandığından, orijinal zula durumunu çakışma olmadan geri yükler.

Daha sonra bu yeni dalı, sakladığınız zaman bulunduğunuz yerin soyundan gelen başka bir yere yeniden yerleştirebilirsiniz.

Yorumlar (4)

Zulalar sizin istediğiniz gibi kalıcı şeyler değildir. Muhtemelen taahhütler üzerinde etiketler kullanmanız daha iyi olacaktır. Saklamak istediğiniz şeyi oluşturun. Ondan bir commit yapın. Bu commit için bir etiket oluşturun. Sonra dalınızı HEAD^ olarak geri alın. Şimdi bu zulayı yeniden uygulamak istediğinizde git cherry-pick -n tagname kullanabilirsiniz (-n --no-committir).

Yorumlar (3)