CodeBlanks Logo Icon CodeBlanks

git stash

git stash ile değişiklikleri geçici saklamayı öğrenirsin.

git stash ile çalışma alanını temizleme

Tamamlanmamış değişikliklerin varken başka bir dala geçmek veya acil bir hatayı düzeltmek gerektiğinde yarım kalan işleri commit etmek istemezsin. git stash komutu hem çalışma dizinindeki hem de sahnelenmiş değişiklikleri geçici bir depolama yığınına kaldırır. Çalışma dizinin böylece son commit'in (HEAD) temiz haline geri döner.

git status
git stash

Daha sonra sakladığın bu değişiklikleri kaldığın yerden geliştirmeye devam etmek üzere geri alabilirsin.

Mesajlı stash ve takip edilmeyen dosyalar

Varsayılan olarak git stash yalnızca Git tarafından takip edilen (tracked) dosyalardaki değişiklikleri saklar. Takip edilmeyen yeni dosyaları da saklamak istersen -u bayrağını eklersin. Daha sonra hangi stash kaydında ne olduğunu hatırlamak için push -m ile özel açıklama ekleyebilirsin.

git stash -u
git stash push -m "giris formu gelistirmesi"

Açıklayıcı mesajlar bırakmak, özellikle birden fazla stash kaydı biriktiğinde işini büyük ölçüde kolaylaştırır.

Uygulama Çalışma alanını stash ile temizle

app.py dosyasındaki tamamlanmamış değişiklikleri git stash -q ile sakla ve ardından cat app.py ile dosyanın ilk haline döndüğünü ekrana yazdır.

Başlangıç kodu

terminal
git init -q
git config user.name "Canan"
git config user.email "canan@example.com"
echo "surum 1" > app.py
git add app.py
git commit -qm "Ilk commit"
echo "surum 2 calismasi" >> app.py

# Degisiklikleri stash'e al ve dosya icerigini yazdir

Örnek çözüm

terminal
git init -q
git config user.name "Canan"
git config user.email "canan@example.com"
echo "surum 1" > app.py
git add app.py
git commit -qm "Ilk commit"
echo "surum 2 calismasi" >> app.py

git stash -q
cat app.py

Beklenen çıktı

surum 1

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 git stash komutu çalıştırıldığında çalışma alanındaki kaydedilmemiş değişikliklere ne olur?

  • Otomatik olarak depoya kalıcı bir commit olarak eklenir
  • Geçici bir yığına kaldırılır ve çalışma alanı HEAD durumuna döner Doğru cevap
  • Yalnızca yeni oluşturulmuş dosyalar çalışma alanından silinir
  • Tamamen silinir ve bir daha geri getirilemez

Açıklama: git stash henüz commit edilmeye hazır olmayan değişiklikleri geçici bir yığına kaydeder ve çalışma alanını temizler.

2 Takip edilmeyen dosyaları da sakla

Soru
git stash ____
Cevap
git stash -u

Açıklama: -u (ya da --include-untracked) seçeneği, Git'in takip etmediği yeni dosyaları da stash yığınına dahil eder.

3 Stash temelleri

Kavram Anlamı
git stash Değişiklikleri geçici yığına alır
-u Takip edilmeyen dosyaları da saklar
git stash push -m Stash kaydına açıklama mesajı ekler
Temiz çalışma alanı Değişiklikler saklanınca HEAD'e döner

Orta seviye bölümündeki tüm dersler

20 Orta seviye finali

  1. Dal yönetimi
  2. Rebase
  3. Çatışma
  4. PR akışı