Penguji .gitignore
Tempel aturan .gitignore dan daftar jalur file Anda untuk melihat persis file mana yang diabaikan, oleh aturan dan baris yang mana, serta aturan negasi mana yang tidak berfungsi karena direktori induk sudah diabaikan.
🔒 Diproses sepenuhnya di browser Anda — apa pun yang Anda masukkan di sini tidak akan pernah diunggah.
Hasil
"Kenapa negasi .gitignore saya tidak berfungsi?" adalah salah satu pertanyaan git yang paling umum, dan jawaban jujurnya hampir selalu sama: pola `!` yang mencoba menyertakan ulang file di dalam direktori yang sudah dikecualikan oleh aturan sebelumnya tidak akan pernah berfungsi, karena git tidak turun ke direktori yang diabaikan untuk memeriksa ulang apa pun di dalamnya. Alat ini mengimplementasikan ulang algoritma pencocokan .gitignore git yang sebenarnya — bukan perkiraan — khusus agar dapat menangkap dan menjelaskan situasi persis itu, bersama dengan setiap aturan pola lain yang didukung git.
Tempel aturan .gitignore Anda ke satu kotak dan daftar jalur file (satu per baris, seperti `dist/index.js`, `node_modules/foo/bar.js`, atau `.env`) ke kotak lainnya, lalu alat ini mengevaluasi setiap jalur persis seperti yang dilakukan git: komentar dan baris kosong dilewati, spasi di akhir dipangkas kecuali di-escape, `!` di awal menegasikan aturan, `/` di awal menambatkannya ke akar alih-alih membiarkannya cocok di kedalaman mana pun, `/` di akhir membatasinya hanya untuk direktori, dan `*`, `?`, kelas karakter `[abc]` serta `**` (cocok melintasi batas direktori) semuanya bekerja sesuai aturan glob yang terdokumentasi.
Yang penting, jalur diperiksa direktori demi direktori dari akar ke bawah, sama seperti cara kerja mesin pengabaian git sendiri — bukan dengan menguji jalur penuh terhadap setiap aturan secara terpisah. Inilah yang memungkinkan pendeteksian yang benar atas kasus negasi-mati: jika `dist/` diabaikan di baris 3 dan `!dist/keep.js` kemudian mencoba menyelamatkan satu file di dalamnya, alat ini melaporkan `dist/keep.js` sebagai tetap diabaikan, menyebut aturan baris 3 sebagai alasannya, dan secara terpisah menandai negasi itu sebagai dibayangi, alih-alih diam-diam menganggapnya berfungsi.
Tabel hasil memberikan setiap jalur yang diuji barisnya sendiri dengan vonis diabaikan ya/tidak yang jelas, teks aturan persis dan nomor baris yang memutuskannya, dan — jika relevan — catatan bahasa sederhana yang menjelaskan negasi yang dibayangi atau aturan direktori induk yang diwarisi. Itulah detail yang mengubah .gitignore yang membingungkan menjadi sesuatu yang benar-benar bisa Anda pahami sebelum melakukan commit.