BFG Kullanarak Git Geçmişini Düzeltme

Muhammet Aydın
2 min readJul 15, 2024

--

Git, yazılım geliştirme süreçlerinde önemli bir araç olsa da zaman zaman hassas bilgilerin sızmasına neden olabilir. Şifreler, API anahtarları veya diğer hassas veriler, yanlışlıkla depoya yüklendiğinde güvenlik riskleri oluşturabilir. Bu tür durumları düzeltmek için BFG Repo-Cleaner aracı oldukça kullanışlıdır. Bu yazıda, Git depolarındaki hassas bilgileri BFG kullanarak nasıl temizleyebileceğinizi adım adım göstereceğim.

Adım 1: BFG Repo-Cleaner’ı İndirme ve Kurma

BFG Repo-Cleaner’ı indirip kurma işlemi oldukça basittir. Resmi GitHub deposundan son sürümü indirin:

Direkt sitesinden indirebilisiniz: https://rtyley.github.io/bfg-repo-cleaner/

Adım 2: BFG ile Hassas Bilgileri Değiştirme veya Kaldırma

Öncelikle projeniz dışında bir klasör oluşturun ve terminalde girin.

Klasör için şifrelerinizi (gizlenmesini istediğiniz ya da hepsi) alt alta password.txt dosyasına yazınız.
Jar dosyayı da klasöre ekleyiniz.

git clone --mirror C:\projeniz_dosya_konumu

ardından oluşan .git uzantılı klasörünüze giriş yapın

 cd .\projeniz.git\   

Şimdi ise jar dosyamız aracılığıyla passwords.txt dosyasındaki şifreler yerine projemizde ***REMOVED*** şeklinde bir yazı gözükecek ve git geçmişimizde hep böyle gözükmesi sağlanacak.

BFG, Git deposundaki dosyaları veya commit geçmişini tarayarak belirli metinleri değiştirebilir veya kaldırabilir. Örneğin, passwords.txt dosyasındaki şifreleri değiştirmek için şu komutu kullanabilirsiniz:

java -jar bfg-1.14.0.jar --replace-text passwords.txt projeniz.git

Bu komut, passwords.txt dosyasındaki tüm metinleri değiştirerek Git geçmişinden kaldırır.

Adım 3: Temizlik İşlemini Gerçekleştirme

BFG ile değişiklikleri yaptıktan sonra, Git depomuzdaki geçmişi temizlememiz gerekiyor:

cd projeniz.git
git reflog expire --expire=now --all && git gc --prune=now --aggressive

Bu komutlar, reflog geçmişini temizler ve gereksiz nesneleri (garbage) sıkıştırır ve temizler.

Adım 4: Yerel ve Uzak Depoları Güncelleme

Yerel depoyu güncelledikten sonra, değişiklikleri uzak depoya da göndermeyi unutmayın:

git push origin master

Bu adımları takip ederek, Git depolarınızdan hassas bilgileri temizlemek ve güvenliği artırmak mümkün olacaktır. Sorunuz varsa da sormaktan çekinmeyin.

BFG Repo-Cleaner’ın güçlü ve etkili bir araç olduğunu unutmayın!

--

--

No responses yet