Ana içeriğe geç

Git Clean: İzlenmeyen Dosyaları Kaldırın ve Depoları Düzenli Tutun

İzlenmeyen dosya ve dizinleri güvenle kaldırmak için git clean komutuna hâkim olun. Veri kaybını önlemek için ana seçenekleri, etkileşimli modu ve en iyi uygulamaları öğrenin.
· 8 dk. oku

Yapay Zeka ile Keşfedin

Bir Git deposunda çalışırken, deponun sürüm kontrol sisteminin parçası olmayan izlenmeyen dosya ve dizinlerin birikmesi yaygındır. Bunlar; geçici dosyaları, derleme çıktılarını veya yerel olarak oluşturduğunuz ve commitlemediğiniz diğer dosyaları içerebilir. Zamanla bu dosyalar çalışma dizinini kalabalıklaştırarak temiz ve düzenli bir çalışma alanı korumayı zorlaştırabilir.

Bu sorunu çözmek için Git, izlenmeyen dosya ve dizinleri kaldıran git clean komutunu sağlar. Bu rehberde, git clean komutunu güvenle nasıl kullanacağınızı, farklı seçeneklerini ve Git deponuzu düzenli tutarken istenmeyen dosya silmelerinden kaçınmak için en iyi uygulamaları göstereceğim. Daha fazla öğrenmek için, sürüm kontrolü ve Git ile GitHub arasındaki farklar hakkında bilgi edinmek üzere Foundations of Git ve Introduction to GitHub Concepts kurslarımızı almanızı öneririm.

git clean'i Anlamak

git clean komutu, çalışma dizininden izlenmeyen dosyaları kaldıran kullanışlı bir Git aracıdır. git clean, dallar arasında geçiş yapmadan önce veya geçici dosyalar üreten derleme süreçlerinden sonra çalışma dizininizi ilk günkü hâline döndürmeniz gerektiğinde faydalıdır. Ancak, git clean komutunu dikkatli kullanmalısınız; çünkü izlenmeyen dosya ve dizinleri çöp kutusuna taşımadan kalıcı olarak siler.

git reset veya git checkout'un izlenen dosyaları değiştirmesinin aksine, git clean yalnızca sürüm kontrolünde olmayan dosya ve dizinlerle ilgilenir. Buna şunlar dahildir:

  • Derlemelerin oluşturduğu geçici dosyalar

  • Günlük dosyaları veya önbelleğe alınmış veriler

  • .gitignore'da listelenen dosyalar (özellikle -x ile belirtilirse)

git clean, izlenen dosyalardaki değişiklikleri yöneten git reset ve git checkout gibi diğer Git komutlarını tamamlayarak, düzenli bir çalışma dizini korumak için faydalıdır.

Complete Git Cheat Sheet'in yaygın Git komutları için kullanışlı bir başvuru olduğunu düşünüyorum.

git clean için Yaygın Kullanımlar

git clean komutu, temiz bir çalışma dizini korumak için kullanışlı bir araçtır. Aşağıda, git clean'in gereksiz dosya ve dizinleri güvenle kaldırabileceği bazı yaygın kullanım senaryoları yer alır.

İzlenmeyen dosyaları kaldırma

Bir Git deposunda çalışırken, izlenmeyen dosyalar zamanla birikebilir. Aşağıdaki seçenekler bunları kaldırmaya yardımcı olur:

  • git clean -f: İzlenmeyen dosyaların kaldırılmasını zorlar.

  • git clean -fd: İzlenmeyen dosyaları ve izlenmeyen dizinleri kaldırır.

  • git clean -fx: .gitignore'da listelenenler gibi izlenmeyen ve yok sayılan dosyaları kaldırır.

Ancak, -fx seçeneğini kullanırken dikkatli olmalısınız; çünkü yok sayılan dosyaları da kaldırır. Komutu çalıştırmadan önce her zaman bir deneme çalıştırması (git clean -n) ile doğrulayın.

Etkileşimli mod

git clean -i komutu, kullanıcıların izlenmeyen dosyaları seçerek kaldırmasına olanak tanıyan etkileşimli bir mod sağlar. Bu mod, hangi dosya veya dizinlerin silineceği üzerinde daha fazla kontrol istediğinizde kullanışlıdır.

Diyelim ki, Olympics klasöründeki değişiklikleri zaten kaydettiniz. Ancak 2024_Data ve 2025_Data adında yeni veri kaynakları eklediniz. git clean -i komutunu çalıştırırsanız, izlenmeyen değişiklikleri silmek için aşağıdaki seçenekler arasından seçim yapmanıza olanak tanıyan bir istem alırsınız.

  • clean:  Seçili dosyaları kaldır

  • filter: Temizlenecek dosyalar için bir desen belirt

  • select: Numaraya göre tek tek dosyaları seç

  • quit: Hiçbir şey silmeden çık

git clean -i etkileşimli modu.

git clean -i etkileşimli modu. Görsel: Yazar.

Güvenlik için deneme çalıştırması

git clean -n seçeneğini kullanmak, bir "deneme çalıştırması" yaptığı için faydalı bir güvenlik önlemidir; kaldırılacak izlenmeyen dosya ve dizinlerin bir listesini gösterir ancak bunları gerçekte silmez. Bu, işlemleri uygulamadan önce gözden geçirmenizi sağlar.

Aşağıdaki örnekte, git clean -n komutu silinmesi gereken dosyaları listeler ancak silmez.

Deneme çalıştırması için git clean -n.

Deneme çalıştırması için git clean -n. Görsel: Yazar.

git reset ile birleştirme

Bir Git çalışma dizinini tamamen sıfırlamak için, git reset ve git clean komutlarını birlikte kullanabilirsiniz; burada:

  • git reset --hard: İzlenen dosyaları, yerel değişiklikleri atarak son commitlenen duruma sıfırlar.

  • git clean -fd: İzlenmeyen dosya ve dizinleri kaldırır, yalnızca commitlenmiş dosyaları bırakır.

Bu kombinasyon, tamamen temiz bir çalışma dizini sağlar; dallar arasında geçiş yaparken, deneysellikten geri dönerken veya temiz bir başlangıç hazırlarken faydalıdır.

Yerel değişiklikleri üzerine yazma konusunda en iyi uygulamaları öğrenmek için Git Pull Force: How to Overwrite a Local Branch With Remote rehberimize göz atın.

git clean Kullanımı için Adım Adım Rehber

Git deponuzu güvenle temizlemek ve istenmeyen izlenmeyen dosya ve dizinleri kaldırmak için şu adımları izleyin.

Adım 1: Mevcut durumu kontrol edin

Temizliğe başlamadan önce, hangi dosyaların izlenmediğini görmek için git status çalıştırarak deponuzun mevcut durumunu kontrol edin.

git status

Depodaki mevcut durumu kontrol etmek için git status.

Depodaki mevcut durumu kontrol etmek için git status. Görsel: Yazar.

Adım 2: Nelerin kaldırılacağını önizleyin

Herhangi bir kaldırma komutunu çalıştırmadan önce, git clean -n kullanarak nelerin kaldırılacağını önizleyin.

git clean -n

Silinecekleri önizlemek için git clean -n.

Silinecekleri önizlemek için git clean -n. Görsel: Yazar.

Adım 3: İzlenmeyen dosyaları kaldırın

Önizleme doğru görünüyorsa, izlenmeyen dosyaları kaldırmak için git clean -f komutunu çalıştırın.

git clean -f

git clean -f kullanarak izlenmeyen değişiklikleri kaldırın.

git clean -f kullanarak izlenmeyen değişiklikleri kaldırın. Görsel: Yazar.

Adım 4: İzlenmeyen dizinleri kaldırın

İzlenmeyen dizinleri kaldırmak için git clean -fd kullanın.

git clean -fd

git clean -fd kullanarak izlenmeyen dizinleri kaldırın.

git clean -fd kullanarak izlenmeyen dizinleri kaldırın. Görsel: Yazar.

Adım 5: Yok sayılan dosyaları kaldırın

Hem izlenmeyen hem de yok sayılan dosyaları kaldırmak için git clean -fx komutunu kullanın.

git clean -fx

Adım 6: Seçmeli temizlik için etkileşimli modu kullanın

Daha fazla kontrol için, etkileşimli kaldırma amacıyla git clean -i kullanmayı düşünün. Bu mod, silinecek dosyaları tek tek seçmenize olanak tanır.

Git clean -i

Seçmeli temizlik için git clean -i etkileşimli modu.

Seçmeli temizlik için git clean -i etkileşimli modu. Görsel: Yazar.

git clean ve Diğer Git Komutları

git clean komutu, dosyaları değiştiren veya sıfırlayan diğer Git komutlarıyla sıkça karşılaştırılır. Aşağıdaki tablo temel farkları vurgular:

Komutİşlev
git cleanİzlenmeyen dosya ve dizinleri kalıcı olarak kaldırır.
git resetİzlenen dosyaları önceki bir duruma sıfırlar; hazırlık alanı ve commitlenmiş değişiklikleri etkiler.
git checkout (veya git restore)İzlenen dosyalardaki değişiklikleri atar ancak dosyaları kaldırmaz.
git stashHem izlenen hem izlenmeyen değişiklikleri daha sonra kullanmak üzere geçici olarak kaydeder.

Git Clean En İyi Uygulamaları

git clean komutunu güvenli ve etkili biçimde kullanmak için şu en iyi uygulamaları izleyin:

  • Silmeden Önce Deneme Çalıştırması (-n) Kullanın: Her zaman git clean komutunu çalıştırmadan önce git clean -n seçeneğiyle bir deneme çalıştırması yapın. Bu, hangi dosyaların silineceğini gerçekte silmeden önizlemenizi sağlar.

  • Yok Sayılan Dosyalara Dikkat Edin: git clean kullanırken, yok sayılan dosyaları kaldıran -x seçeneğine dikkat edin. Bu, .gitignore'da listelenen önemli yapılandırma dosyalarını potansiyel olarak silebilir. Yok sayılan dosyaları kaldırmanız gerekiyorsa, git clean -fx komutunu kullanın.

  • Tam Temizlik için Git Reset ile Birleştirin: Deponuzu tamamen sıfırlamak için, git reset ile git clean komutlarını birleştirin; git reset --hard izlenen dosyaları son commitlenen duruma döndürür ve git clean -fd izlenmeyen dosya ve dizinleri kaldırır.

  • Daha Güvenli Silmeler için Etkileşimli Modu (-i) Kullanın: Dosyaları körlemesine kaldırmak yerine, silinecek dosyaları gözden geçirip seçmek için etkileşimli modu (git clean -i) kullanın.

Olası Riskler ve Önlemler

git clean dikkatli kullanılmazsa riskli olabilir; çünkü dosyaları herhangi bir yerde saklamadan kalıcı olarak siler. Göz önünde bulundurmanız gereken bazı temel riskler ve önlemler şunlardır:

  • Dosyalar Kalıcı Olarak Silinir: Değişiklikleri geçici olarak kaydeden git stash'in aksine, git clean izlenmeyen dosya ve dizinleri kalıcı olarak siler. Kaldırıldıktan sonra bu dosyalar Git üzerinden geri getirilemez. Dosyalara daha sonra ihtiyacınız olabileceğini düşünüyorsanız, git clean komutunu çalıştırmadan önce bunları saklamayı (stash) veya yedeklemeyi düşünün.

  • -x Seçeneğinde Dikkatli Olun: git clean -fx kullanmak, .gitignore'da listelenen önemli yapılandırma dosyaları veya node_modules/ ve venv/ gibi bağımlılık önbellekleri dâhil olmak üzere yok sayılan dosyaları kaldırır. Bu dosyaların yanlışlıkla kaldırılması derlemeleri veya geliştirme ortamlarını bozabilir; bu seçeneği yalnızca gerekli olduğunda kullanın.

  • Önce Deneme Çalıştırması Yapın: git clean -f komutunu çalıştırmadan önce her zaman git clean -n ile bir deneme çalıştırması yapın. Bu adım, hangi dosyaların silineceğini önizlemenizi sağlar ve önemli dosyaların yanlışlıkla kaldırılmasını önlemeye yardımcı olur

  • Alternatif Yaklaşımlar: Bazı senaryolarda, git clean yerine git stash kullanmak daha iyi olabilir. git stash -u komutu, yok sayılanlar hariç izlenmeyen dosyaları saklar; gerekirse git stash pop saklanan değişiklikleri geri yükler. Bu yöntem, dallar arasında geçiş yapmanız veya çalışma alanınızı kalıcı olarak değişiklikleri kaybetmeden temizlemeniz gerektiğinde kullanışlıdır.

Sonuç

İyi bakımı yapılmış bir kod tabanı; detaylara dikkat, verimlilik ve dijital varlıkları sorumlu biçimde yönetme becerisini gösterir. İşverenler, dosyaları silmeden önce git clean -n kullanmak, -x ile yok sayılan dosyalara dikkat etmek ve git stash gibi daha güvenli alternatiflerden yararlanmak gibi en iyi uygulamaları anlayan geliştiricileri arar.

DataCamp kurslarını almak yalnızca öğrenmenin harika bir yolu değil, aynı zamanda yazılım geliştirmeyi ciddiye aldığınızı işverenlere göstermek için de iyi bir yöntemdir. Bu bağlamda, Tüm Seviyeler için En İyi 20 Git Mülakat Sorusu ve Cevabı blog yazımızı incelemenizi ve Git ile ilgili her konuda uzmanlaşmak için yeni Git Fundamentals yetkinlik yolumuzu almanızı öneririm.

Allan Ouko

Yazar

Allan Ouko

Veri analitiği, iş zekâsı ve veri bilimi alanlarında pratik deneyime sahip Veri Bilimi Teknik Yazarı. SQL, Python, Power BI, Databricks ve veri mühendisliği üzerine, gerçek dünya analitik çalışmalarına dayanan, uygulamaya dönük ve sektöre odaklı içerikler yazıyorum. Yazılarım teknik derinlikle iş etkisi arasındaki köprüyü kurarak profesyonellerin veriyi güvenle karara dönüştürmelerine yardımcı olur.

Git Clean SSS

git clean ne yapar?

git clean, Git çalışma dizininizden izlenmeyen dosya ve dizinleri kaldırır.

git clean commitlenmiş dosyaları siler mi?

Hayır, git clean yalnızca izlenmeyen dosyaları kaldırır; commitlenmiş veya hazırlık alanına alınmış dosyaları etkilemez.

Silmeden önce dosyaları nasıl önizleyebilirim?

Bir deneme çalıştırması yapmak ve hangi dosyaların kaldırılacağını görmek için git clean -n kullanın.

git clean -f ile git clean -fd arasındaki fark nedir?

git clean -f izlenmeyen dosyaları kaldırır; git clean -fd ise izlenmeyen dizinleri de kaldırır.

git clean, git reset'ten nasıl farklıdır?

git clean izlenmeyen dosyaları kaldırır; git reset ise izlenen dosyaları önceki bir duruma döndürür.

Dosyaları seçerek silmenin bir yolu var mı?

Evet, silinecek dosyaları seçmenizi sağlayan etkileşimli mod için git clean -i kullanın.

Konular

İlgili