Kita semua tahu, folder node_modules itu bisa segede gaban. Kalau folder ini sampai masuk ke repositori Git, proses clone dan pull bisa jadi lemot banget. Padahal, kita cuma butuh kodenya, bukan dependensinya. Mari kita atasi masalah ini dalam dua skenario!
Skenario 1: Pencegahan (Wajib Dilakukan!)
Ini adalah langkah paling krusial. Kita akan "mengajari" Git untuk selamanya mengabaikan node_modules menggunakan file ajaib bernama .gitignore.
Langkah 1: Buat dan Isi .gitignore
Di folder utama proyekmu, buat file baru bernama .gitignore (pakai titik di depan). Lalu, isi dengan daftar file/folder yang mau diabaikan.
# Abaikan folder dependensi (Paling Penting!)
/node_modules
# Abaikan file environment & log
.env
npm-debug.log
# Abaikan folder hasil build
/dist
/buildLangkah 2: "Un-track" node_modules (Jika Terlanjur di-add)
Kalau kamu pernah tidak sengaja menjalankan git add . dan node_modules ikut masuk, kita perlu mengeluarkannya dari pelacakan Git.
# Perintah ini HANYA menghapus dari Git, BUKAN dari komputermu
git rm -r --cached node_modulesLangkah 3: Simpan Perubahanmu
Terakhir, commit .gitignore dan perubahan "untracking" tadi agar aturan ini berlaku selamanya.
git add .gitignore
git commit -m "feat: Add .gitignore and untrack node_modules"
git pushSkenario 2: Pengobatan (Jika Repo Sudah Terlanjur Gendut)
Jika node_modules sudah terlanjur masuk ke riwayat commit-commit lama, repo kamu akan tetap besar. Ada dua cara untuk menyembuhkannya.
Opsi A: Cara Cepat & Gampang (Shallow Clone)
Kalau kamu cuma butuh kode versi terbaru dan gak peduli riwayat lama, clone ulang saja repo-mu dengan mode "dangkal".
# Hanya akan menarik 1 commit terakhir, ukurannya jadi super kecil!
git clone --depth 1 https://github.com/user/repo.gitOpsi B: Cara "Pembersihan Total" (Menulis Ulang Sejarah)
Ini adalah operasi tingkat lanjut untuk menghapus node_modules dari seluruh riwayat Git secara permanen. Lakukan dengan hati-hati!
- Wajib Backup! Buat salinan folder proyekmu dulu.
- Operasi ini akan mengubah riwayat commit. Semua anggota tim harus
cloneulang. - Ini adalah operasi yang "merusak" (destructive).
Cara modern untuk ini adalah menggunakan git-filter-repo.
# 1. Install tool-nya (jika belum ada)
pip3 install git-filter-repo
# 2. Jalankan perintah pembersih di dalam folder repo-mu
git filter-repo --path node_modules --invert-paths
# 3. Dorong paksa riwayat baru ke GitHub
git push origin --force --allSetelah ini, repositorimu akan "sembuh" dan ukurannya menyusut drastis. Semua anggota tim harus menghapus folder lama mereka dan melakukan git clone yang baru.