Konfigurasi mengatur perilaku Git di level mesin; .gitignore mengatur pandangan Git di level repository — berkas mana yang sengaja tidak pernah dilacak. Chapter ini menyediakan pola siap salin per jenis proyek: pilih grup yang cocok, salin kolom polanya ke .gitignore di root repository, lalu commit berkas itu supaya seluruh tim menerima daftar yang sama (.gitignore
). Sintaks tiap baris dibedah tuntas di Pola .gitignore
; daftar di bawah adalah titik awal yang lazim, bukan paket final — susun dari derau yang benar-benar muncul di proyek kita, karena pola yang tidak dipahami sulit didiagnosis saat ada berkas penting yang “kok tidak muncul”.
Derau Umum Semua Proyek #
Sampah sistem operasi dan berkas sementara — pola pertama yang layak ada di hampir setiap repository.
| Pola | Menyamarkan |
|---|---|
.DS_Store | Metadata folder yang ditaburkan macOS Finder. |
Thumbs.db | Cache thumbnail Windows Explorer. |
*.tmp | Berkas sementara editor dan alat. |
Python #
Alat Python menaburkan bytecode dan lingkungan virtual yang nilainya nol bagi rekan tim — semuanya lahir ulang di mesin siapa pun yang menjalankan kode atau instalasi dependensi.
| Pola | Menyamarkan |
|---|---|
__pycache__/ | Direktori bytecode yang dibuat ulang otomatis saat import. |
*.pyc | Berkas bytecode hasil kompilasi. |
.venv/ | Virtual environment pribadi — bukan bagian dari kode. |
Node.js #
Pola kelompok ini persis yang didemonstrasikan teori: node_modules/ dipulihkan manajer paket, dist/ dan build/ lahir ulang tiap kali build, .env berisi kredensial lokal (.gitignore
).
| Pola | Menyamarkan |
|---|---|
node_modules/ | Seluruh dependensi terpasang. |
dist/ | Hasil build siap produksi. |
build/ | Artefak proses build. |
.env | Kredensial lokal — berbahaya bila ter-commit. |
Java #
Kelompok Java mengikuti logika yang sama: direktori keluaran build dan hasil kompilasi adalah artefak yang dihasilkan ulang dari sumber, bukan sumber itu sendiri.
| Pola | Menyamarkan |
|---|---|
target/ | Direktori keluaran build Maven. |
*.class | Berkas bytecode hasil kompilasi. |
IDE dan Editor #
IDE menaburkan berkas konfigurasi yang sebagian pribadi; pengecualian dengan negasi menyelamatkan aturan tim yang memang dibagikan.
| Pola | Menyamarkan |
|---|---|
.idea/ | Konfigurasi proyek IntelliJ IDEA. |
.vscode/ | Pengaturan workspace VS Code — kecuali berkas tertentu (misal tasks.json) yang dibagikan lewat !.vscode/tasks.json. |
*.swp | Berkas swap Vim yang hidup selama mengedit. |
Log dan Hasil Kerja Lain #
Dua pola penutup menampung sisa derau yang tak terklasifikasi: jejak proses aplikasi dan konfigurasi pribadi per mesin.
| Pola | Menyamarkan |
|---|---|
*.log | Jejak proses aplikasi di kedalaman mana pun. |
/config.local | Konfigurasi pribadi per mesin di root repository — jangkar / menjauhkannya dari alat/config.local di subdirektori (Pola .gitignore
). |
Aturan Penulisan Pola #
Tata bahasanya ringkas — lima aturan menutup hampir semua kebutuhan, masing-masing dibuktikan nyata di chapter teori.
| Aturan | Contoh | Arti |
|---|---|---|
| Garis miring di akhir | node_modules/ | Hanya mencocokkan direktori beserta isinya, bukan berkas bernama sama. |
| Garis miring di awal | /config.local | Pola berjangkar ke root repository. |
| Bintang | *.log | Karakter apa pun sebanyak apa pun, berlaku di semua kedalaman. |
| Dua bintang | **/logs | Nol atau lebih direktori — menangkap logs di mana pun. |
| Negasi | !penting.log | Membatalkan pola sebelumnya; baris paling akhir menang. |
Repository yang bersih dari derau siap menerima pekerjaan dengan kualitas yang konsisten — dan kualitas itu sendiri bukan urusan pola, melainkan urusan isi tiap commit. Komponen kualitas berikutnya melekat pada tiap commit yang masuk: pesannya — struktur, larangan, dan prefiksnya dirangkum di Pedoman Commit Message .