Git Filter Repo

Git Tingkat Lanjut

Amanda Crawford-Adamo

Software and Data Engineer

Apa itu git filter-repo?

Perintah Git Filter-Repo

git filter-repo

Alat untuk menulis ulang riwayat Git dengan cepat dan aman.

  • Ganti nama file atau direktori
  • Beroperasi di semua branch sekaligus

Tujuan

  1. Hapus data sensitif (mis. kata sandi, token)
  2. Bersihkan file yang tidak perlu
  3. Restrukturisasi repositori
  4. Kecilkan ukuran repositori
Git Tingkat Lanjut

Proses Filter-Repo

  1. Instal git filter-repo dengan pip

    pip install git-filter-repo
    
  2. Hapus secrets.txt dari setiap commit

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

Filter terkait Filter-Repo

--path: menentukan path yang diproses

--invert-paths: proses semua path kecuali yang ditentukan di --path

Git Tingkat Lanjut

Hasil Filter-Repo

Keluaran

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

Implikasi utama

  • Semua branch dan commit diperbarui
  • Semua hash commit berubah
  • Diperlukan force push setelah langkah ini
  • Anggota tim perlu mengklon ulang repo
Git Tingkat Lanjut

Kapan menggunakan filter-repo

Use case

  • Menghapus data sensitif (mis. kata sandi)
  • Membersihkan repo yang membengkak
  • Ganti nama atau tata ulang file di semua commit

Tips

  • Selalu buat cadangan repo sebelum memakai filter-repo
  • Koordinasikan dengan kolaborator sebelum mendorong riwayat yang sudah diubah
Git Tingkat Lanjut

Ayo berlatih!

Git Tingkat Lanjut

Preparing Video For Download...