# Git Stash

Adres: https://softwaredictionary.org/tr/terimler/git-stash
Kategori: Sürüm Kontrolü
Son güncelleme: 2026-09-30
Okunuşu: git steş

Kısaca: Git stash, commit edilmemiş değişiklikleri geçici olarak saklayıp çalışma dizinini temizleyen komuttur; başka işe geçip çalışmanıza sonra dönmenizi sağlar.

## git stash nedir?

Git stash, commit oluşturmadan commit edilmemiş değişikliklerinizi bir kenara koyan bir Git komutudur. `git stash` çalıştırmak, değiştirilmiş izlenen dosyalarınızı ve stage edilmiş değişikliklerinizi kaydeder, ardından çalışma dizinini son commit ile eşleşecek şekilde sıfırlar. Daha sonra kaydedilen değişiklikleri geri getirebilir ve tam kaldığınız yerden devam edebilirsiniz.

Her stash, bir yığın (stack) üzerinde özel bir commit olarak saklanır; en yeni olan `stash@{0}`, ondan önceki `stash@{1}` olur ve böyle devam eder. `git stash pop` en son stash'i yeniden uygular ve yığından kaldırır; `git stash apply` ise yeniden uygular ancak bir kopyasını tutar. Yeni izlenmeyen (untracked) dosyalar varsayılan olarak stash'lenmez; bunları dahil etmek için `-u`, stash'e açıklayıcı bir mesaj vermek için `-m` ekleyin. Stash'lenen değişiklikler sonradan yapılan düzenlemelerle çakışırsa Git bir merge çakışması bildirir ve bunu her zamanki gibi çözersiniz.

Bunu, masanızda biri acil yardım istediğinde yarım kalmış evraklarınızı bir çekmeceye koymak gibi düşünün. Yaygın bir durum, bir özellik üzerinde çalışırken kritik bir hata bildiriminin gelmesidir: özellik çalışmanızı stash'ler, başka bir branch'e geçer, hatayı düzeltir, sonra geri dönüp stash'inizi pop edersiniz.

Stash'lemek sıklıkla commit ile karıştırılır. Commit, proje geçmişinin kalıcı ve paylaşılabilir bir parçasıdır; stash ise makinenize yereldir, hiçbir zaman uzak depoya push edilmez ve unutulması kolaydır. Kısa bir sapmadan uzun sürecek işler için, kendi branch'inde yapılmış bir yarım kalmış iş (work-in-progress) commit'i çoğu zaman daha güvenlidir.

## Önemli noktalar

- `git stash` commit edilmemiş değişiklikleri kaydeder ve çalışma dizinini temizler.
- Stash'ler bir yığında tutulur ve `stash@{0}` her zaman en yenisidir.
- `pop` bir stash'i geri yükler ve kaldırır, `apply` ise geri yükler ve tutar.
- İzlenmeyen dosyalar yalnızca `-u` eklediğinizde dahil edilir.
- Stash'ler yereldir ve hiçbir zaman uzak depoya push edilmez.

## Örnek: Başka bir branch'te hata düzeltmek için işi stash'lemek

```bash
# Save current changes with a message, including untracked files
git stash push -u -m "half-done login form"

# Switch away, fix something else, and come back
git switch hotfix
# ...fix the bug and commit...
git switch feature/login

# See what is stashed, then restore the latest stash
git stash list
git stash pop
```

## Sık sorulan sorular

**git stash pop ile git stash apply arasındaki fark nedir?**

`git stash pop` en son stash'i yeniden uygular ve ardından stash listesinden siler. `git stash apply` ise yeniden uygular ancak listede tutar; bu, aynı değişiklikleri birkaç branch'e uygulamak istediğinizde işe yarar.

**git stash izlenmeyen dosyaları da kapsar mı?**

Varsayılan olarak hayır. İzlenmeyen dosyaları dahil etmek için `git stash -u`, yok sayılan dosyaları da dahil etmek için `git stash -a` kullanın.

**Yalnızca bazı dosyaları stash'leyebilir miyim?**

Evet. Belirli dosyaları stash'lemek için `git stash push <path>`, tek tek değişiklikleri etkileşimli olarak seçmek için `git stash push -p` kullanın.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
