Git Stash ile Git Clean Arasındaki Fark Nedir?

Git, yazılım geliştirme süreçlerinde en yaygın kullanılan sürüm kontrol sistemlerinden biridir. Projeler üzerinde çalışırken, bazen geçici olarak yapılmış değişiklikleri saklamak veya temizlik yapmak gerekebilir. Bu noktada, Git’in sunduğu bazı komutlar, özellikle git stash ve git clean, geliştiricilere büyük kolaylık sağlar. Ancak bu iki komutun kullanım amacının farklı olduğunu bilmek önemlidir. Bu yazıda, git stash ile git clean komutlarının arasındaki farkları detaylı bir şekilde ele alacağız.

Git Stash Nedir?

git stash, çalışma dizininizdeki değişiklikleri geçici olarak saklamak için kullanılan bir Git komutudur. Bu komut, henüz commit edilmemiş değişiklikleri (staged veya unstaged) yerel bir stash (saklama) alanına kaydeder. Bu sayede, projedeki mevcut işinize devam edebilirken, yaptığınız değişiklikleri geçici olarak saklayabilirsiniz. git stash, genellikle yeni bir branş oluşturmak, başka bir görevi yapmak veya başka bir çalışma ortamına geçiş yapmak gerektiğinde kullanılır.

Örnek Kullanım:

git stash

Bu komut çalıştırıldığında, şu işlemler gerçekleşir:

  • Çalışma dizinindeki ve staging alanındaki değişiklikler kaydedilir ve bir geçici saklama alanına aktarılır.
  • Proje, son commit haline döner; yani, tüm değişiklikler geri alınır.
  • Değişiklikler stash olarak adlandırılan bir geçici alan içinde saklanır.

Git Stash Komutunun Kullanım Senaryoları

Git stash, özellikle aşağıdaki durumlarda kullanışlıdır:

  • Geçici değişiklikler saklamak: Başka bir göreve geçmeden önce geçici değişikliklerinizi saklayabilirsiniz.
  • Yeni bir branch oluşturmak: Mevcut branch üzerindeki değişiklikleri kaydetmeden başka bir branch’e geçebilirsiniz.
  • İşinizi kaybetmeden çalışma ortamını sıfırlamak: Geçici olarak bir şeyleri geri almak isteyebilirsiniz, ancak çalıştığınız kodu kaybetmek istemezsiniz.

Git Clean Nedir?

git clean, Git çalışma dizininde yer alan, Git tarafından izlenmeyen dosyaları temizlemek için kullanılan bir komuttur. Bu komut, yalnızca takip edilmeyen dosyalar üzerinde işlem yapar ve untracked files olarak bilinen dosyaları siler. Eğer projenizde geçici dosyalar, derleme çıktıları ya da eski test dosyaları varsa, bu dosyaların silinmesi için git clean komutunu kullanabilirsiniz.

Örnek Kullanım:

git clean -f

Bu komut, çalışma dizininizdeki izlenmeyen (untracked) dosyaları temizler. Ancak, önemli dosyaları yanlışlıkla silmemek için dikkatli olmanız gerekir.

Git Clean Komutunun Kullanım Senaryoları

Git clean, genellikle aşağıdaki durumlarda kullanılır:

  • Geçici dosyaları temizlemek: Derleme süreçlerinden ve testlerden kalan geçici dosyaları silebilirsiniz.
  • Çalışma dizinini temiz tutmak: İlgisiz dosyalar, gereksiz dosyalar veya önbellekler temizlenebilir.
  • Projede gereksiz dosyaları silmek: Git tarafından izlenmeyen, ancak çalışma dizininde yer kaplayan dosyalar silinebilir.

Git Stash ve Git Clean Arasındaki Farklar

Şimdi, git stash ve git clean arasındaki temel farkları inceleyelim:

Özellik Git Stash Git Clean
İşlev Çalışma dizinindeki ve staging alanındaki değişiklikleri geçici olarak saklar. Git tarafından izlenmeyen dosyaları temizler (silinmesini sağlar).
Dosya Tipi Çalışma dizinindeki tüm değişiklikler (staged ve unstaged) saklanabilir. Yalnızca untracked (izlenmeyen) dosyaları siler.
Amac Değişiklikleri geçici olarak saklamak ve gerektiğinde geri yüklemek. Çalışma dizinindeki gereksiz dosyaları temizlemek.
Veri Kaybı Veri kaybı olmaz; saklanan değişiklikler geri getirilebilir. Veri kaybı olabilir; silinen dosyalar geri getirilemez.
Silme İşlemi Silme işlemi yapılmaz, değişiklikler sadece saklanır. Silme işlemi yapılır, dosyalar kalıcı olarak silinir.

Git Stash ve Git Clean İle İlgili İpuçları

Her iki komutun da faydalı olabileceği bazı ipuçları şunlardır:

  • Git Stash: git stash list komutu ile kaydedilen tüm değişikliklerinizi görüntüleyebilirsiniz. Ayrıca, git stash pop komutu ile son yapılan değişikliği geri getirebilirsiniz.
  • Git Clean: Silme işlemi yapmadan önce, git clean -n komutunu kullanarak hangi dosyaların silineceğini görebilirsiniz. Bu sayede yanlışlıkla önemli dosyaları silme riskini önlersiniz.

Sonuç

git stash ve git clean, Git kullanıcılarının verimli çalışmasına yardımcı olan iki önemli komuttur. git stash geçici değişiklikleri saklamak için kullanılırken, git clean çalışma dizinindeki izlenmeyen dosyaları temizler. Her iki komut da belirli senaryolarda büyük fayda sağlar, ancak kullanım amaçları birbirinden farklıdır. İhtiyacınıza göre doğru komutu seçmek, verimli bir Git kullanımı için önemlidir.

Git’i daha verimli kullanmak için, bu komutların nasıl çalıştığını öğrenmek ve projelerinize nasıl uygulayacağınızı anlamak büyük önem taşır. Unutmayın, her iki komut da yanlış kullanıldığında veri kaybına yol açabilir, bu yüzden dikkatli olmanızda fayda var.