Git Filter Repo

İleri Seviye Git

Amanda Crawford-Adamo

Software and Data Engineer

git filter-repo nedir?

Git Filter-Repo Komutu

git filter-repo

Git geçmişini hızlı ve güvenli biçimde yeniden yazma aracı.

  • Dosya veya dizinleri yeniden adlandırır
  • Tüm dallarda eşzamanlı çalışır

Amaçlar

  1. Hassas verileri kaldırma (örn. parolalar, belirteçler)
  2. Gereksiz dosyaları temizleme
  3. Depoları yeniden yapılandırma
  4. Depo boyutunu küçültme
İleri Seviye Git

Filter-Repo süreci

  1. pip ile git filter-repo’yu kurun

    pip install git-filter-repo
    
  2. Her committen secrets.txt’yi kaldırın

    git filter-repo --path secrets.txt --invert-paths
    

Filter-Repo İlgili Filtreler

--path: işlem yapılacak yolları belirtir

--invert-paths: --path ile belirtilenler dışındaki tüm yollarda çalışır

İleri Seviye Git

Filter-Repo sonucu

Çıktı

  Parsed 150 commits
  New history written in 0.10 seconds; now repacking/cleaning...
  Repacking your repo and cleaning out old unneeded objects

Temel Sonuçlar

  • Tüm dallar ve commitler güncellendi
  • Tüm commit hash’leri değişti
  • Bu adımdan sonra zorla itme gerekir
  • Ekip üyeleri depoyu yeniden klonlamalı
İleri Seviye Git

filter-repo ne zaman kullanılır

Kullanım durumları

  • Hassas verileri kaldırma (örn. parolalar)
  • Şişmiş depoları temizleme
  • Tüm commitlerde dosyaları yeniden adlandırma/düzenleme

İpuçları

  • filter-repo kullanmadan önce deponuzu mutlaka yedekleyin
  • Yeniden yazılmış geçmişi itmeden önce ekip ile koordinasyon sağlayın
İleri Seviye Git

Hadi pratik yapalım!

İleri Seviye Git

Preparing Video For Download...