0

Penguji Gignore

Tempelkan aturan .gitignore Anda dan daftar jalur file untuk melihat file mana yang diabaikan, aturan dan baris mana yang tepat, dan aturan negasi mana yang mati secara diam-diam karena direktori induk sudah diabaikan.

Buy Me a Coffee at ko-fi.com
Memproses... 0%
Mengurai aturan .gitignore
Jalur file yang cocok
Selesai

Hasil

"Mengapa negasi .gitignore saya tidak berfungsi?" adalah salah satu pertanyaan git paling umum yang ada, dan jawaban jujurnya hampir selalu sama: `!pattern` yang mencoba memasukkan kembali file ke 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 algoritme pencocokan .gitignore aktual milik git — bukan perkiraan — secara khusus sehingga dapat menangkap dan menjelaskan situasi sebenarnya, bersama dengan setiap aturan pola lain yang didukung git.

Tempelkan aturan .gitignore Anda ke dalam satu kotak dan daftar jalur file (satu per baris, seperti `dist/index.js`, `node_modules/foo/bar.js`, atau `.env`) ke kotak lainnya, dan alat ini akan mengevaluasi setiap jalur persis seperti yang dilakukan git: komentar dan baris kosong dilewati, spasi di akhir dihilangkan kecuali di-escape, `!` di awalan meniadakan aturan, `/` di awalan mengaitkannya ke root alih-alih membiarkannya cocok pada kedalaman apa pun, `/` di akhir membatasinya pada direktori, dan kelas karakter `*`, `?`, `[abc]` dan `**` (cocok melintasi batas direktori) semuanya berfungsi sesuai aturan glob yang didokumentasikan.

Yang terpenting, jalur diperiksa direktori demi direktori dari akar ke bawah, sama seperti cara kerja mesin abaikan milik git — bukan dengan menguji jalur lengkap terhadap setiap aturan secara terpisah. Inilah yang memungkinkan untuk mendeteksi kasus negasi mati dengan benar: jika `dist/` diabaikan pada baris 3 dan `!dist/keep.js` yang lebih baru mencoba menyelamatkan satu file di dalamnya, alat ini melaporkan `dist/keep.js` sebagai masih diabaikan, menyebutkan aturan baris-3 sebagai alasannya, dan secara terpisah menandai negasi tersebut sebagai bayangan daripada secara diam-diam berpura-pura berhasil.

Tabel hasil memberikan setiap jalur yang diuji barisnya sendiri dengan keputusan pengabaian ya/tidak yang jelas, teks aturan yang tepat dan nomor baris yang memutuskannya, dan — bila relevan — catatan bahasa sederhana yang menjelaskan negasi bayangan atau aturan direktori induk yang diwarisi. Itulah detail yang mengubah .gitignore yang membingungkan menjadi sesuatu yang dapat Anda pikirkan sebelum melakukannya.