Cara Menghapus Histori Commit File/Directory dari Git

Arwan Prianto Mangidi
0

 

Saat mengembangkan proyek menggunakan Git, ada kalanya kita secara tidak sengaja melakukan commit terhadap file atau folder yang seharusnya tidak ikut tersimpan ke dalam histori Git. Misalnya file konfigurasi lokal, folder node_modules, atau bahkan data sensitif seperti .env. Jika hal ini terjadi, kamu mungkin ingin menghapus jejak file tersebut dari histori commit agar benar-benar hilang dari repositori.

Artikel ini akan membahas bagaimana cara menghapus histori commit dari sebuah file atau folder di Git menggunakan alat bantu bernama git-filter-repo. Panduan ini cocok untuk kamu yang ingin membersihkan riwayat project, terutama sebelum mempublikasikan proyek ke GitHub, GitLab, atau Bitbucket.


Mengenal Git Filter-Repo

git-filter-repo
adalah tool modern yang dikembangkan untuk menggantikan
git filter-branch
dan BFG Repo-Cleaner. Tool ini jauh lebih cepat, fleksibel, dan aman untuk melakukan pengubahan besar pada histori Git.

Tool ini sangat bermanfaat ketika kamu ingin:

  • Menghapus file dari seluruh histori Git
  • Mengganti penulis commit
  • Menghapus direktori tertentu dari repositori
  • Membersihkan jejak data sensitif yang sudah terlanjur ter-commit

Langkah-langkah Menghapus Histori Commit File atau Folder

1. Instalasi git-filter-repo

Tool ini tidak langsung tersedia dalam Git standar, jadi kamu perlu menginstalnya terlebih dahulu. Berikut cara instalasinya:

pip install git-filter-repo

Pastikan kamu sudah menginstal Python dan pip di komputermu. Setelah terinstal, perintah

git filter-repo
bisa digunakan di terminal atau command prompt.


2. Jalankan Perintah untuk Menghapus Histori File atau Folder

Misalnya kamu ingin menghapus folder bernama

environments
dari histori Git secara keseluruhan, gunakan perintah berikut:

git filter-repo --path environments --invert-paths --force

Penjelasan:

--path environments
Menargetkan folder environments
--invert-paths
Menyuruh Git untuk menghapus path tersebut (bukan menyimpannya)
--force
Untuk memastikan proses tetap dijalankan tanpa konfirmasi tambahan

3. Push Perubahan ke Remote (Opsional)

Setelah proses selesai, kamu perlu melakukan

git push --force
untuk memperbarui repositori jarak jauh (remote). Hati-hati! Perintah ini akan menimpa histori di remote dan bisa menyebabkan konflik jika orang lain juga meng-clone repositori yang sama.

Catatan Penting

    Sebelum menjalankan
    git filter-repo
    , buat backup repositori kamu
  • Jangan lupa informasikan ke semua rekan tim bahwa histori repositori telah berubah
  • Gunakan dengan bijak, karena perubahan histori bersifat permanen (tidak bisa di-undo dengan mudah)

Kesimpulan

Menghapus histori commit pada Git memang memerlukan kehati-hatian, namun sangat berguna untuk menjaga kebersihan dan keamanan repositori. Dengan tool git-filter-repo, proses ini bisa dilakukan dengan cepat dan efisien. Ingatlah selalu untuk melakukan backup sebelum mengubah histori Git dan lakukan komunikasi yang baik dengan tim pengembangmu.

Semoga artikel ini membantu kamu memahami cara menghapus histori file atau folder dari Git dengan aman. Jangan lupa bagikan artikel ini kepada temanmu yang juga butuh solusi serupa!

Posting Komentar

0 Komentar
Posting Komentar (0)