.gitignore — File yang Mencegah Anda Menyimpan node_modules
Panduan praktis untuk .gitignore: apa yang dilakukan, cara sintaks bekerja, pola umum untuk node_modules dan file .env, serta perangkap yang sudah tercatat yang menangkap semua pengembang.
Setiap pengembang pernah melakukannya setidaknya sekali: secara tidak sengaja mengonfirmasi node_modules, .env file penuh dengan kunci API, atau artefak pembangunan sebesar 200MB. Kecemasan ini nyata. Perbaikannya melelahkan. Dan keseluruhan hal ini sepenuhnya dapat dihindari dengan satu file saja: .gitignore.
Panduan ini menjelaskan apa .gitignore adalah, bagaimana cara kerjanya, apa yang harus dimasukkan ke dalamnya, dan beberapa penangkapan yang menangkap bahkan pengembang berpengalaman.
Apa Itu .gitignore?
.gitignore adalah file teks sederhana yang memberi tahu Git mana file dan direktori yang harus dikecualikan dari pengendalian versi. Ketika Git melihat jalur yang terdaftar dalam .gitignore, ia memalsukan bahwa jalur tersebut tidak ada — ia tidak akan memasukkannya ke dalam tahap, mengonfirmasikannya, atau menampilkan di git status output.
File ini berada di akar repositori Anda, meskipun Anda juga dapat menempatkan file khusus proyek di direktori anak. Aturan dalam file di direktori anak hanya berlaku untuk direktori tersebut dan anak-anaknya. .gitignore Mengapa Anda Perlu Satu (Versi Singkat)
— menjaga rahasia, kunci API, dan kata sandi tidak masuk ke sejarah Git
- Keamanan Ukuran repositori
- — mencegah file yang dihasilkan dan ketergantungan membesar ukuran repositori Anda Pengurangan kebisingan
- — menghentikan file konfigurasi editor dan sampah sistem operasi yang mengganggu setiap perbedaan Kesehatan tim
- — setiap orang mengklon repositori bersih dan menginstal ketergantungan secara lokal Cara Sintaks Bekerja
Aturan-aturannya sederhana tetapi memiliki beberapa batas yang tidak jelas:
Baris kosong dan baris yang dimulai dengan
- diabaikan (gunakan
#untuk komentar)#Polanya tanpa garis miring - cocok dengan file atau direktori dengan nama tersebut di mana saja di repositori: mengabaikan setiap file log di setiap tingkat
*.logGaris bawah di akhir - cocok hanya dengan direktori: mengabaikan direktori tetapi tidak mengabaikan file bernama
dist/Garis bawah di awaldist - mengunci pola ke akar repositori: hanya mengabaikan
/todo.txtdi akar yang sangat dasartodo.txtDua bintang ( - cocok di luar batas direktori:
**) di mana saja di pohon**/logsmencocoklogs/Tanda seru ( - menolak pola, mengembalikan file yang sebelumnya diabaikan
!) Contoh Minimal
Entri yang Paling Umum (dan Mengapa Penting)
# Dependencies
node_modules/
# Environment files
.env
.env.local
.env.*.local
# Build output
dist/
build/
# Editor noise
.vscode/
.idea/
*.swp
# OS files
.DS_Store
Thumbs.db
# Logs
*.log
npm-debug.log*
node_modules/
Ini yang besar. Proyek Node.js biasanya memiliki ribuan file di
— sering kali ratusan megabyte. Tidak satupun dari itu termasuk dalam pengendalian versi. Siapa saja yang mengklon repositori Anda menjalankan node_modules/ dan membangunnya secara lokal dari npm install . Selalu abaikan itu. package.json.env dan file rahasia
File lingkungan menyimpan kata sandi database, kunci API, dan token layanan. File yang dikonfirmasi
adalah insiden keamanan yang menunggu terjadi — GitHub memindai rahasia yang terlepas, tetapi juga dilakukan oleh bot. Abaikan file tersebut, konfirmasi .env dengan nilai placeholder agar rekan kerja tahu variabel apa yang harus diatur. .env.example dist/ dan build/
Output yang dikompilasi atau dibundel diturunkan dari sumber. Pipelining CI Anda membangun ulang hal tersebut setiap kali di-deploy. Menyimpan artefak pembangunan menciptakan konflik penggabungan dan perbedaan palsu yang mengaburkan perubahan kode nyata.
File editor dan sistem operasi
(macOS),
.DS_Store (Windows), Thumbs.db (JetBrains), .idea/ (pengaturan VS Code) — ini adalah file ruang kerja pribadi. Menyimpannya memaksa preferensi Anda pada setiap kontributor lainnya. Gunakan global .vscode/ untuk kebisingan khusus mesin sehingga Anda tidak perlu menambahkannya ke setiap proyek. ~/.gitignore_global .gitignore global: Tetapkan Sekali, Lupakan
Anda dapat mengatur file abaikan global yang berlaku untuk setiap repositori di mesin Anda:
Letakkan file editor, sampah sistem operasi, dan alat pribadi di sana. Reservasi file proyek untuk hal-hal yang disetujui oleh seluruh tim — seperti
git config --global core.excludesfile ~/.gitignore_global
"Kebakaran yang Sudah Dikendalikan" .gitignore Ini adalah tempat pengembang terbakar: node_modules/ atau dist/.
hanya mencegah
file yang belum tercatat .gitignore dipindahkan. Jika file sudah ada di sejarah Git, menambahkannya ke tidak berpengaruh. Git tetap mengendalikannya dan akan tetap mengonfirmasi perubahan terhadap file tersebut. Untuk menghentikan pengendalian file yang sudah dikonfirmasi: .gitignore Setelah itu, file tetap ada di disk tetapi Git mengabaikannya ke depan.
Aturan Penolakan: Mengembalikan File
# Remove the file from git tracking without deleting it locally
git rm --cached path/to/file
# Or remove a whole directory
git rm -r --cached node_modules/
# Then commit the removal
git commit -m "Stop tracking node_modules"
Kadang-kadang Anda ingin mengabaikan direktori kecuali untuk satu file tertentu — misalnya, abaikan
tetapi tetap simpan
yang dikonfirmasi: config/ Satu hal: penolakan tidak dapat menghapus pengabaian file di dalam direktori yang diabaikan. Git berhenti menuruni direktori yang diabaikan, sehingga config/defaults.json aturan tidak pernah mendapatkan kesempatan untuk berjalan. Anda harus mengabaikan isi daripada direktori itu sendiri:
config/
!config/defaults.json
Menghasilkan .gitignore untuk Stack Anda ! Anda tidak perlu menulisnya dari awal.
# Wrong — Git never sees defaults.json inside an ignored directory
config/
!config/defaults.json
# Right — ignore everything in config/ except defaults.json
config/*
!config/defaults.json
gitignore.io
(juga di ) memungkinkan Anda memilih bahasa, kerangka kerja, dan editor Anda dan secara instan menghasilkan file abaikan yang komprehensif. GitHub juga menawarkan template resmi di repositori github/gitignore gitignore.io— template ini terus diperbaiki dan mencakup ratusan lingkungan. Untuk kebanyakan proyek web, titik awal yang kuat menggabungkan template untuk bahasa Anda (Node, Python, PHP, dll.), editor Anda (VS Code, JetBrains), dan sistem operasi Anda (macOS, Windows). Mengecek Apa yang Diabaikan oleh Git
Dua perintah membantu memperbaiki aturan abaikan yang tidak diharapkan:
sangat berguna ketika aturan tidak berfungsi seperti yang diharapkan — ia mencetak nama file, nomor baris, dan pola yang bertanggung jawab.
Referensi Cepat: Daftar Pola
# See which files are being ignored in the current directory
git status --ignored
# Find out exactly which rule is causing a file to be ignored
git check-ignore -v path/to/file
git check-ignore -v Apa yang Diabaikan
file di mana saja
| Pola | Hanya |
|---|---|
*.log | Semua .log di akar |
/debug.log | Setiap direktori bernama debug.log direktori di setiap tingkat |
logs/ | Mengembalikan logs |
**/logs | logs meskipun |
!important.log | cocok dengan itu important.log file secara langsung di dalam *.log (bukan subdirektori) |
doc/*.txt | .txt file di mana saja di bawah doc/ .gitignore — File yang Menyelamatkan Anda dari Menyimpan node_modules 2 |
doc/**/*.txt | .txt .gitignore — File yang Menyelamatkan Anda dari Menyimpan node_modules 1 doc/ |
Anda mungkin juga menyukai
Instal Ekstensi Kami
Tambahkan alat IO ke browser favorit Anda untuk akses instan dan pencarian lebih cepat
恵 Papan Skor Telah Tiba!
Papan Skor adalah cara yang menyenangkan untuk melacak permainan Anda, semua data disimpan di browser Anda. Lebih banyak fitur akan segera hadir!
Alat Wajib Coba
Lihat semua Pendatang baru
Lihat semuaMemperbarui: Kita alat terbaru was added on Mei 21, 2026
