Teknoloji ipuçlarını kendin uygula
İçerik
Son yazılar
Biz kimiz
Yazılım Atölyesi, adım adım teknoloji rehberleriyle kendi başına öğrenip uygulama yapmak isteyenlere yardımcı olur. Pratik ipuçları, araç önerileri ve çözümler bulacaksınız.

Git Stash ile Değişiklikleri Saklamak

Bir özellik üzerinde çalışıyorsun. Dosyalar yarım, testler kırmızı. Tam o anda "şu hatayı acil düzeltir misin?" mesajı geliyor. Yarım işi commit etmek istemezsin, silmek de istemezsin. İşte git stash tam bu boşluğu doldurur: değişikliklerini bir kenara alır, çalışma dizinini temizler, sonra istediğin anda geri koyar.

Aşağıdaki adımları kendi bir test deposunda uygulaman en iyisi. Boş bir klasör aç, git init yap, iki üç dosya oluştur ve komutları sırayla dene. Terminalde rahat değilsen Linux terminali için hazırladığımız başlangıç rehberi iyi bir ısınma olur.

Değişiklikleri Saklamak: Temel Adımlar

Stash, bir yığın (stack) gibi çalışır. En son sakladığın en üstte durur. Her kayıt stash@{0}, stash@{1} şeklinde numaralanır ve yeni kayıt geldiğinde numaralar kayar.

İlk stash'i oluşturmak

Saklama işleminden sonra git status temiz görünür. Artık branch değiştirebilir, pull yapabilir, acil düzeltmeyi rahatça yazabilirsin.

Neler saklanır, neler saklanmaz

Varsayılan davranış çok net değildir ve burada insanlar iş kaybeder:

Çözüm iki bayrak:

Sakladıklarını görmek

Geri Getirmek, Çakışmaları Çözmek ve Temizlik

apply mı, pop mu?

İkisi de değişiklikleri çalışma dizinine geri koyar. Fark, kaydın listede kalıp kalmamasıdır.

KomutNe yaparNe zaman
git stash popEn üsttekini uygular ve listeden silerİşin bittiğinde, normal akış
git stash applyUygular ama listede bırakırAynı değişikliği iki branch'te deneyeceksen
git stash pop stash@{2}Belirli kaydı uygular ve silerSıra atlamak gerektiğinde
git stash apply --indexStaged/unstaged ayrımını da korurAdd ettiğin dosyalar aynı kalsın istiyorsan

Pratik kural: emin değilsen apply kullan, sonuç doğruysa git stash drop ile sil. Böylece yanlış branch'e uygulama riskini ucuza atlatırsın.

Çakışma çıktığında

Stash aldıktan sonra aynı satırlar başka bir commit'le değiştiyse Git çakışma bildirir. Panik yok:

  1. Çakışan dosyaları düzenle, işaretçileri (<<<<, ====, >>>>) temizle.
  2. git add ile çözülen dosyaları işaretle.
  3. Kayıt hâlâ listede duruyorsa git stash drop ile kaldır. Çakışmalı pop, kaydı otomatik silmez.
  4. Her şeyi geri almak istersen: git checkout -- . ve stash yerinde kalır, tekrar denersin.

Çakışma sıklıkla stash'i uzun süre bekletmekten çıkar. Kayıtları gün içinde tüket; hafta boyu bekleyen stash bir kod arkeolojisi projesine dönüşür.

Branch'e çevirmek ve listeyi temizlemek