Setiap repository Git butuh file .gitignore. Isinya daftar path dalam teks biasa yang *tidak* boleh dilacak Git: hasil build, folder dependensi, konfigurasi IDE, dan sampah sistem operasi seperti .DS_Store. Tanpa file ini, commit pertamamu bisa ikut membawa node_modules/, .env, dan target/, dan membereskan kekacauan itu jauh lebih menyebalkan daripada menyiapkan file yang benar sejak awal.
Setiap ekosistem mengabaikan hal yang berbeda, dan kebanyakan proyek memakai beberapa sekaligus. Aplikasi Node + TypeScript biasa di laptop macOS dengan VS Code saja sudah butuh gabungan empat daftar ignore yang berbeda. Menulisnya dari ingatan berarti kamu bisa lupa coverage/, membocorkan .env, atau ikut meng-commit .idea/ dari setup JetBrains milik rekan tim.
Karena itu, generator ini menggabungkan template pilihan dari proyek resmi github/gitignore, sumber aturan yang sama dengan saran otomatis resmi GitHub, dan membiarkanmu menumpuknya. Centang kotak yang sesuai, dan kamu mendapatkan satu .gitignore tanpa duplikat untuk langsung ditempel ke repo-mu. Tanpa akun, tanpa unggahan, dan berjalan sepenuhnya di browsermu.
Yang akan kamu pelajari saat menyusun .gitignore
Pola .gitignore memakai sintaks glob: *.log mengabaikan setiap file log, build/ mengabaikan sebuah folder, dan !important.log membatalkan pengabaian satu file tertentu meskipun cocok dengan glob.
Pola berlaku relatif terhadap lokasi file .gitignore, jadi .gitignore di dalam src/ hanya memengaruhi file di bawah src/.
File yang sudah dilacak **tidak** otomatis diabaikan belakangan. Kalau kamu meng-commit node_modules/ lalu menambahkannya ke .gitignore, kamu tetap perlu menjalankan git rm -r --cached node_modules untuk berhenti melacaknya.
Beberapa file .gitignore bisa ada bersamaan: di root repo, di subfolder, plus ~/.gitignore_global global untuk tool pribadi seperti JetBrains atau sistem operasimu.
Urutan penting untuk negasi: !pattern yang muncul belakangan hanya berlaku kalau aturan sebelumnya memang mengabaikan file itu. Menegasikan folder tidak bisa membatalkan pengabaian file di dalamnya.
Cara membuat .gitignore langkah demi langkah
1
Pilih preset stack cepat (opsional)
Kalau proyekmu cocok dengan kombinasi umum seperti Next.js, Django, atau Rails, klik sebuah preset untuk mencentang semua kotak yang relevan sekaligus. Setelah itu, buang atau tambahkan beberapa lagi kalau ada yang ekstra.
2
Tambahkan bahasamu
Setiap bahasa punya hasil build yang perlu diabaikan: Node punya node_modules/, Python punya __pycache__/ dan virtualenv, Java punya target/ dan file .class. Pilih bahasa yang benar-benar dikompilasi proyekmu.
3
Tambahkan framework-mu
Di atas aturan bahasa, framework menambahkan direktori build sendiri: Next.js butuh .next/ dan .vercel, Django butuh staticfiles/ dan db.sqlite3, Rails butuh tmp/ dan /storage/*. Centang framework-nya kalau kamu memakainya.
4
Tambahkan editor dan sistem operasimu
Tambahkan template editor yang dipakai **tim** (bukan hanya kamu). Kalau ada yang memakai JetBrains atau Vim, sertakan juga. Lalu tambahkan sistem operasi yang dipakai timmu: macOS meninggalkan .DS_Store, Windows meninggalkan Thumbs.db, dan keduanya mudah ter-commit tanpa sengaja.
5
Salin atau unduh
Panel kanan menampilkan output gabungan tanpa duplikat. Tekan **Salin** untuk langsung menempelnya ke .gitignore di root repo-mu, atau **Unduh** untuk menyimpan filenya secara langsung.
Batas minimum untuk proyek Node apa pun yang dibagikan dengan rekan tim di macOS. Proyek sampingan sekecil apa pun sebaiknya punya aturan ini. Tanpa .DS_Store dan node_modules/, kamu akan terus berurusan dengan konflik yang tidak perlu.
Backend Django biasa yang dikembangkan di PyCharm. Perhatikan bahwa db.sqlite3 lokal diabaikan: production tidak pernah memakainya, dan meng-commit-nya akan membocorkan data dev dan merusak clone baru milik rekan tim.
Timpa aturan dengan negasi
Abaikan semua log kecuali satu
*.log
!keep-me.log
Baris pertama mengabaikan setiap file .log. Aturan !keep-me.log lalu memasukkan kembali satu file tertentu itu. Negasi hanya berlaku untuk file yang memang diabaikan aturan sebelumnya: kamu tidak bisa membatalkan pengabaian file di dalam folder yang diabaikan.
Kesalahan umum soal .gitignore
Menambahkan .gitignore belakangan dan berharap file yang sudah di-commit ikut hilang. Tidak begitu: kamu harus menjalankan git rm -r --cached <path> untuk berhenti melacaknya.
Meng-commit .env meski hanya sekali. Satu commit saja sudah membocorkan rahasianya selamanya di riwayat repo-mu. Tambahkan .env* ke .gitignore **sebelum** commit pertama, dan ganti rahasia apa pun yang terlanjur masuk.
Lupa sampah khusus sistem operasi di repo bersama. Kalau ada satu saja rekan tim yang memakai macOS dan repo tidak punya aturan .DS_Store, file itu akan muncul di setiap diff PR dan memperlambat review.
Mencoba membatalkan pengabaian file di dalam folder yang diabaikan. Begitu kamu mengabaikan build/, tidak ada negasi yang bisa memasukkan kembali build/keep.txt, karena Git bahkan tidak melihat isi folder itu. Ubah strukturnya atau pindahkan file itu keluar.
Mencampur konfigurasi editor yang hanya kamu pakai ke .gitignore proyek. Hanya kamu yang memakai JetBrains di tim yang memakai VS Code? Taruh .idea/ di ~/.gitignore_global **global** milikmu saja.
FAQ .gitignore Generator
Dari mana template .gitignore ini berasal?
Template-nya diringkas dari proyek open source github/gitignore, sumber yang sama yang dipakai GitHub saat kamu mencentang "add .gitignore" ketika membuat repo baru. Kami memangkas masing-masing menjadi aturan yang benar-benar dibutuhkan tim dan mengelompokkannya per kategori.
Apakah file .gitignore itu sendiri ikut di-commit?
Ya. .gitignore memang dimaksudkan untuk masuk version control dan dibagikan dengan timmu. File ini adalah *kesepakatan* tentang apa yang boleh dan tidak boleh dilacak. Pengecualiannya adalah preferensi pribadi (misalnya editor pilihanmu), yang tempatnya di ~/.gitignore_global global milikmu.
Bagaimana cara berhenti melacak file yang sudah di-commit?
Tambahkan dulu ke .gitignore, lalu jalankan git rm --cached <path> (atau git rm -r --cached <folder>) untuk menghapusnya dari index tanpa menghapusnya dari disk. Commit kedua perubahan itu bersamaan agar rekan tim melihat pembaruannya.
Bisakah satu repo punya beberapa file .gitignore?
Bisa. Git mencari .gitignore di setiap direktori dan menerapkan aturannya ke subtree itu. Ini berguna untuk monorepo yang frontend dan backend-nya punya aturan ignore yang sangat berbeda: simpan aturan tingkat root untuk sampah OS/editor yang dipakai bersama, dan taruh aturan bahasa di direktori setiap paket.
Apa bedanya .gitignore dengan .git/info/exclude?
.gitignore di-commit dan dibagikan dengan tim. .git/info/exclude hanya ada di clone lokalmu dan dipakai untuk pengecualian pribadi yang tidak ingin kamu push. Untuk pengecualian di semua repo-mu, pakai ~/.gitignore_global global.