Bazen şube değiştirmek istersiniz ancak mevcut projenizin tamamlanmamış bir kısmı üzerinde çalışıyorsunuzdur. Yarım kalmış bir işi taahhüt etmek istemezsiniz. Git saklama bunu yapmanıza olanak sağlar. git stash komutu Mevcut şubeyi taahhüt etmeden şubeler arasında geçiş yapmanızı sağlar.
Aşağıdaki şekil depo ve çalışma dizinine ilişkin saklamanın özelliklerini ve rolünü göstermektedir.
Genellikle zulanın anlamı ' bir şeyi gizli bir yerde güvenli bir şekilde saklamak .' Git'teki anlam stash için de aynıdır; Git, verilerinizi taahhütte bulunmadan güvenli bir şekilde geçici olarak kaydeder.
Saklama, çalışma dizininizin dağınık durumunu alır ve daha sonra kullanmak üzere geçici olarak kaydeder. Git stash ile birçok seçenek mevcuttur. Bazı yararlı seçenekler aşağıda verilmiştir:
Saklama İşi
Gerçek zamanlı bir senaryo ile bunu anlayalım. GitExample2 projemde iki farklı daldan iki dosyada değişiklik yaptım. Dağınık bir durumdayım ve henüz hiçbir dosyayı tamamen düzenlemedim. Bu yüzden gelecekte kullanmak üzere geçici olarak kaydetmek istiyorum. Mevcut durumu olarak kaydetmek için saklayabiliriz. Saklamak için deponun mevcut durumuna bir göz atalım. Havuzun mevcut durumunu kontrol etmek için git status komutunu çalıştırın. Git status komutu şu şekilde kullanılır:
css'de kalın yazı yazma
Sözdizimi:
$ git status
Çıktı:
Yukarıdaki çıktıdan izlenmeyen iki dosyanın olduğu durumu görebilirsiniz. tasarım.css Ve yeni dosya.txt deposunda mevcuttur. Geçici olarak kaydetmek için git stash komutunu kullanabiliriz. Git stash komutu şu şekilde kullanılır:
Sözdizimi:
$ git stash
Çıktı:
Verilen çıktıda git stash komutu ile çalışma kaydedilir. Deponun durumunu kontrol edebiliriz.
Gördüğünüz gibi çalışmalarım şu anki konumunda saklanıyor. Artık dizin temizlendi. Bu noktada dallar arasında geçiş yapabilir ve üzerinde çalışabilirsiniz.
Git Stash Kaydet (Mesajla birlikte Stash'ları Kaydetme):
Git'te değişiklikler bir mesajla saklanabilir. Bir mesajı bir değişiklikle saklamak için aşağıdaki komutu çalıştırın:
Sözdizimi:
$ git stash save ''
Çıktı:
Yukarıdaki zula bir mesajla kaydedilecek
Git Stash Listesi (Saklanan Stash'leri Kontrol Edin)
Saklanan depoları kontrol etmek için aşağıdaki komutu çalıştırın:
Sözdizimi:
$ git stash list
Çıktı:
Yukarıdaki durumda, ' olarak görüntülenen bir zula oluşturdum. stash@{0}: Testte WIP: 0a1a475 CSS dosyası '.
Birden fazla zulamız varsa, o zaman sırasıyla tüm zulaları farklı zula kimlikleriyle görüntüler. Aşağıdaki çıktıyı göz önünde bulundurun:
İndeksleme ile tüm saklanmaları şu şekilde gösterecektir: zula@{0}: zula@{1}: ve benzeri.
Git Stash Uygula
Git stash komutunu kullanarak az önce sakladığınız değişiklikleri yeniden uygulayabilirsiniz. Taahhüdü uygulamak için git stash komutunu ve ardından uygulama seçeneğini kullanın. Şu şekilde kullanılır:
Sözdizimi:
$ git stash apply
Çıktı:
Yukarıdaki çıktı son zulayı geri yükler. Şimdi, eğer havuzun durumunu kontrol ederseniz, dosyada yapılan değişiklikleri gösterecektir. Aşağıdakileri göz önünde bulundurun çıktı:
Yukarıdaki çıktıdan deponun stash'tan önceki durumuna geri döndüğünü görebilirsiniz. Çıktıyı şu şekilde gösteriyor: Taahhüt için hazırlanmayan değişiklikler .'
Birden fazla saklama durumunda, belirli bir taahhüdü uygulamak için 'git stash application' komutunu ve ardından stash indeks kimliğini kullanabilirsiniz. Şu şekilde kullanılır:
Sözdizimi:
$ git stash apply
Aşağıdaki çıktıyı göz önünde bulundurun:
Java alt dizesi örneği
Çıktı:
Eğer bir zula belirtmezsek Git en güncel zulayı alır ve uygulamaya çalışır.
Git Stash Değişiklikleri
Zulaları ve değişikliklerini takip edebiliyoruz. Stash işleminden önce ve stash işleminden sonra dosyadaki değişiklikleri görmek için aşağıdaki komutu çalıştırın:
Sözdizimi:
$ git stash show
Yukarıdaki komut saklanan dosyayı ve üzerinde yapılan değişiklikleri gösterecektir. Aşağıdaki çıktıyı göz önünde bulundurun:
Çıktı:
Yukarıdaki çıktı, saklanan iki dosyanın olduğunu ve bunlara iki ekleme yapıldığını göstermektedir.
Dosya üzerinde hangi değişikliklerin yapıldığını tam olarak takip edebiliyoruz. Dosyanın değiştirilen içeriğini görüntülemek için aşağıdaki komutu uygulayın:
Sözdizimi:
$ git stash show -p
Burada -p kısmi zulayı temsil ediyor. Verilen komut, düzenlenen dosyaları ve içeriği gösterecektir; aşağıdaki çıktıyı göz önünde bulundurun:
Çıktı:
Yukarıdaki çıktı, içeriği değiştirilen dosya adını gösteriyor. git diff komutuyla aynı işlevi görür. git farkı komutu aynı zamanda tam çıktıyı da gösterecektir.
Git Stash Pop (Saklı Değişiklikleri Yeniden Uygulama)
Git, kullanıcının git stash pop komutunu kullanarak önceki taahhütleri yeniden uygulamasına olanak tanır. Açma seçeneği, değişiklikleri depodan kaldırır ve bunları çalışma dosyanıza uygular.
git stash pop komutu git stash application'a oldukça benzer. Bu komutların her ikisi arasındaki temel fark, uygulandıktan sonra zulayı yığından silen stash pop komutudur.
Sözdizimi:
$ git stash pop
Yukarıdaki komut, önceki taahhütleri depoya yeniden uygulayacaktır. Aşağıdaki çıktıyı göz önünde bulundurun.
kat timpf ağırlığı
Çıktı:
Git Stash Bırakma (Stash'ı Kaldırma)
git zula düşüşü komutu kuyruktan bir zulayı silmek için kullanılır. Genellikle en son saklananları siler. Stash drop komutunu kullanmadan önce dikkatli olunmalıdır çünkü bir kez uygulandığında geri alınması zordur.
Bunu geri almanın tek yolu, zulayı sildikten sonra terminali kapatmamanızdır. Stash drop komutu şu şekilde kullanılacaktır:
Sözdizimi:
$ git stash drop
Çıktı:
Yukarıdaki çıktıda, en son zula (saklama@{0}) Verilen üç zuladan düşürüldü. Stash list komutu kuyruktaki mevcut tüm zulaları listeler.
Ayrıca belirli bir zulayı kuyruktan da silebiliriz. Mevcut zulalardan belirli bir zulayı silmek için, zula bırakma komutunda zula kimliğini iletin. Şu şekilde işlenecektir:
erkek arkadaşlar için bir şeyler
Sözdizimi:
$ git stash drop
Kuyruğumda iki zula bulunduğunu ve en yeni zulamı bırakmak istemediğimi, ancak eskisini silmek istediğimi varsayalım. Daha sonra şu şekilde çalıştırılacaktır:
$ git stash drop stash@{1}
Aşağıdaki çıktıyı göz önünde bulundurun:
Yukarıdaki çıktıda, taahhüt sakla@{1} kuyruktan silindi.
Git Stash Temizle
git saklanmasını temizle komutu, mevcut tüm depoların bir kerede silinmesine izin verir. Mevcut tüm depoları silmek için aşağıdaki komutu çalıştırın:
Sözdizimi:
$ git stash clear
depoda bulunan tüm depoları silecektir.
Çıktı:
Yukarıdaki çıktıda tüm saklamalar silinir. Git stash list komutu boş çünkü depoda kullanılabilir saklama alanı yok.
Git Stash Şubesi
Belirli bir dalda bazı işleri sakladıysanız ve o dalda çalışmaya devam ederseniz. Daha sonra birleştirme sırasında çakışma meydana gelebilir. Bu nedenle işi ayrı bir dalda saklamak iyidir.
git stash Branch komutu, çakışmaları önlemek için kullanıcının çalışmayı ayrı bir dalda saklamasına olanak tanır. Bu dalın sözdizimi aşağıdaki gibidir:
Sözdizimi:
$ git stash branch
Yukarıdaki komut yeni bir dal oluşturacak ve saklanan çalışmayı bunun üzerine aktaracaktır. Aşağıdaki çıktıyı göz önünde bulundurun:
Çıktı:
Yukarıdaki çıktıda, saklanan çalışma yeni oluşturulan bir şube testine aktarılır. Ana daldaki birleştirme çakışmasını önleyecektir.