git reset –hard komutunu kullandığınızda, projeniz belirli bir commit’in durumuna geri döner ve o commit’ten sonraki değişiklikler silinir. Ancak bu komut, yalnızca Git tarafından takip edilen dosyalar üzerinde etkilidir. Yani:
- Takip edilen dosyalar: Daha önce git add ve git commit ile Git’e eklenmiş dosyalardır.
git reset --hard
, bu dosyalardaki değişiklikleri geri alır. - Takip edilmeyen (untracked) dosyalar: Henüz git add ile Git’e eklenmemiş dosyalardır. Bu dosyalar,
git reset --hard
komutundan etkilenmez ve projenizde görünmeye devam eder.
Untracked dosyaları temizlemek için git clean komutunu kullanabilirsiniz. Aşağıdaki adımları izleyerek sorunu çözebilirsiniz:
1. Untracked Dosyaları Görüntüleme
Öncelikle, hangi dosyaların untracked olduğunu görmek için aşağıdaki komutu çalıştırın:
bash
git status
Bu komut, “Untracked files” başlığı altında projenizde Git tarafından takip edilmeyen dosyaları listeler.
2. Untracked Dosyaları Silme
Untracked dosyaları silmek için git clean komutunu kullanabilirsiniz. Ancak bu komut dosyaları kalıcı olarak siler ve geri alma imkanı yoktur, bu yüzden dikkatli olun.
- Önizleme Yapma: Silinecek dosyaları görmek için önce kuru bir çalıştırma (dry run) yapabilirsiniz:bash
git clean -n
Bu komut, silinecek dosyaların listesini gösterir ama henüz silme işlemini gerçekleştirmez. - Dosyaları Silme: Listeyi kontrol ettikten sonra, untracked dosyaları silmek için aşağıdaki komutu kullanın:bash
git clean -f
-f parametresi, silme işlemini zorla gerçekleştirir.
3. Untracked Dizinleri de Silme (Opsiyonel)
Eğer projenizde untracked dizinler (klasörler) de varsa ve bunları da silmek istiyorsanız, -d parametresini ekleyin:
bash
git clean -fd
Bu komut, hem untracked dosyaları hem de untracked dizinleri siler.
Örnek Kullanım
Diyelim ki eski bir commit’e geri dönmek istiyorsunuz ve sonradan eklenen dosyaları temizlemek istiyorsunuz. Şu adımları takip edebilirsiniz:
- Eski commit’e geri dönün:bash
git reset --hard <commit_hash>
- Untracked dosyaları kontrol edin:bash
git status
- Untracked dosyaları silin:bash
git clean -f
veya dizinlerle birlikte silmek için:bashgit clean -fd
Özet
- git reset –hard yalnızca takip edilen dosyaları etkiler, untracked dosyalar kalır.
- Untracked dosyaları silmek için git clean -f kullanabilirsiniz.
- Silme işleminden önce git clean -n ile önizleme yapmanız önerilir.
- Dizinleri de silmek için git clean -fd kullanın.
Bu adımları takip ederek, projenizi istediğiniz commit’in tam haline geri döndürebilir ve sonradan eklediğiniz dosyaları temizleyebilirsiniz. Ancak git clean -f komutunun geri dönüşü olmadığını unutmayın, bu yüzden dikkatli kullanın!
Bir yanıt yazın