Jika Git di Mac Anda mengabaikan suatu berkas, jalankan git check-ignore -v -- 'path/to/file' dari repositori di Terminal. Outputnya mengidentifikasi sumber pengabaian, nomor baris, pola yang cocok, dan jalurnya, sehingga Anda dapat menemukan aturan tersebut dan memutuskan apakah perlu mengubahnya. Jika berkas tersebut sudah dilacak, ulangi pemeriksaan dengan --no-index.
Jalankan pemeriksaan dari repositori
Buka Terminal dan berpindahlah ke direktori tingkat teratas repositori. Anda dapat mengetik cd dengan spasi di akhir, seret folder proyek dari Finder ke jendela Terminal untuk menyisipkan jalurnya, lalu tekan Return. Pastikan Anda berada di pohon kerja (working tree) Git dengan git status; jika Git melaporkan bahwa direktori tersebut bukan repositori, berpindahlah ke folder repositori proyek yang sebenarnya terlebih dahulu.
Gunakan jalur ke berkas relatif terhadap root repositori. Misalnya, untuk mendiagnosis build/cache.json, jalankan:
git check-ignore -v -- 'build/cache.json'
Tanda petik tunggal menjadikan jalur tersebut dianggap harfiah (literal) oleh shell default macOS, zsh. Tanda petik ini sangat berguna jika sebuah nama memuat spasi atau karakter seperti * yang jika tidak diberi petik akan ditafsirkan oleh shell. -- menandai akhir dari opsi, yang juga mencegah jalur yang diawali tanda hubung diperlakukan sebagai flag.
Baca output untuk menemukan lokasinya aturan
Pencocokan verbose terlihat seperti ini:
.gitignore:12:build/ build/cache.json
Arti setiap ruasnya: .gitignore adalah berkas sumber, 12 adalah nomor barisnya, build/ adalah polanya, dan build/cache.json adalah jalur yang Anda cari. Buka berkas sumber tersebut di editor teks pilihan Anda dan periksa baris yang dilaporkan. Sumbernya bisa jadi berupa .gitignore bersarang, .git/info/exclude, atau berkas pengecualian global yang dikonfigurasikan untuk akun Git Anda. Git mendokumentasikan ruas-ruas output verbose dan sumber-sumber pengabaian ini.
Jalur sumber di bawah .git/info/exclude berlaku untuk repositori ini tetapi biasanya tidak dibagikan dengan klona lain. Berkas pengecualian global berlaku untuk repositori Anda sendiri. Pola .gitignore umumnya merupakan tempat yang tepat untuk aturan yang harus dibagikan dalam proyek. Git memeriksa sumber pengabaian berdasarkan urutan prioritas: berkas .gitignore tingkat bawah dapat menimpa aturan induk, dan pola pencocokan terakhir pada tingkat prioritas yang sama menentukan hasilnya. Manual gitignore menjelaskan urutan prioritas dan tujuan penggunaan dari setiap sumber.
Jika Git tidak menampilkan apa pun
Tidak adanya output biasanya berarti tidak ada pola pengabaian yang cocok dengan jalur tersebut. Output normal perintah ini mencantumkan jalur-jalur yang diabaikan; gunakan -v untuk melihat pola penentunya. Pastikan Anda berada di repositori yang benar dan ejaan serta huruf besar/kecil dari jalur tersebut tepat.
Berkas yang terlacak sering kali menjadi sumber kebingungan: secara default, git check-ignore tidak melaporkannya karena aturan pengabaian berlaku untuk berkas yang belum terlacak. Tambahkan --no-index untuk meminta Git tetap memeriksa aturannya:
git check-ignore -v --no-index -- 'build/cache.json'
Opsi ini mendiagnosis aturan; opsi ini tidak membatalkan pelacakan berkas atau menghapusnya dari sebuah commit. Metode yang didokumentasikan Git untuk menghentikan pelacakan adalah git rm --cached, diikuti dengan aturan pengabaian yang sesuai. Perintah tersebut mengubah indeks, jadi periksa statusnya dan pahami dampaknya sebelum menjalankannya. Git menjelaskan batasan berkas yang terlacak dan opsi --no-index.
Periksa negasi dan cakupan pola
Baris yang cocok yang diawali dengan ! merupakan negasi: tanda ini dapat memunculkan kembali jalur setelah adanya pola pengabaian sebelumnya, sehingga kecocokan verbose pada baris semacam itu tidak berarti berkas tetap diabaikan. Git juga tidak dapat menyertakan kembali sebuah berkas jika direktori induknya dikecualikan; direktori induk harus terlebih dahulu dibuat dapat dilalui (traversable) melalui aturan pencocokan. Dokumentasi pola Git menjelaskan negasi dan batasan direktori induk ini.
Pola ditafsirkan relatif terhadap berkas .gitignore yang memuatnya. Pola dengan garis miring (slash) dicakupkan ke tingkat direktori berkas tersebut; pola nama sederhana dapat cocok pada tingkat tersebut dan di bawahnya. Hal ini penting jika suatu aturan berasal dari .gitignore bersarang: pola yang tercetak mungkin terlihat benar meskipun diterapkan ke subpohon yang berbeda dari yang diharapkan. Periksa lokasi berkas sumber serta teks polanya.
Untuk satu berkas, git check-ignore -v biasanya sudah cukup untuk mengidentifikasi ke mana harus melihat. Untuk berkas yang terlacak, sertakan --no-index; setelah itu, gunakan sumber, baris, dan pola yang dilaporkan untuk menentukan apakah aturan tersebut harus diubah, dipersempit, atau dibiarkan apa adanya.