Aturan abaikan pribadi dengan .git/info/exclude
Cara menulis aturan pribadi yang hanya berlaku di satu repositori ke .git/info/exclude tanpa mengubah .gitignore, kapan berguna, dan prioritasnya.
.gitignore di-commit dan dibagikan ke semua orang. Namun kadang ada file yang hanya Anda ingin abaikan di repositori ini: catatan pribadi, skrip eksperimen, folder yang dibuat plugin editor Anda. Untuk itulah .git/info/exclude.
Letaknya
git init atau git clone otomatis membuat berkas .git/info/exclude. Isinya kosong, hanya beberapa baris komentar.
cat .git/info/exclude
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# ...
Karena berada di dalam direktori .git, berkas ini tidak di-commit dan tidak dikirim ke siapa pun saat push. Sintaksnya sama persis dengan .gitignore. Untuk mengetahui lokasi pastinya, termasuk saat memakai beberapa worktree, jalankan git rev-parse --git-path info/exclude.
Kapan dipakai
| Situasi | Contoh | Tempat yang disarankan |
|---|---|---|
| File pribadi yang hanya dipakai di repositori ini | notes.md, scratch/, todo.txt | .git/info/exclude |
| File pribadi yang sama di semua repositori | .DS_Store, *.swp | gitignore global |
| Aturan yang dibutuhkan seluruh tim | node_modules/, dist/, .env | .gitignore |
Terutama berguna saat berkontribusi ke repositori orang lain. Jika Anda mengubah .gitignore proyek untuk memblokir file dari alat Anda sendiri, peninjau mungkin tidak menginginkan perubahan itu. Dengan menulis ke .git/info/exclude, riwayat commit tidak tersentuh.
echo 'scratch/' >> .git/info/exclude
echo '.my-plugin-cache/' >> .git/info/exclude
git status # tidak muncul lagi
Prioritas
Di antara sumber aturan, .git/info/exclude berada di bawah .gitignore dan di atas berkas global.
- Pola dari baris perintah
.gitignore(berkas di subdirektori menimpa berkas di atasnya).git/info/excludecore.excludesFile
Karena itu, file yang diabaikan .gitignore tidak bisa disertakan kembali dengan aturan ! di .git/info/exclude. Jika diperiksa langsung:
# .gitignore : x
# .git/info/exclude : !x
$ git check-ignore -v x
.gitignore:1:x x
Hal yang perlu diperhatikan
- Tidak berpengaruh pada file yang sudah dilacak. Sama seperti .gitignore, aturan abaikan hanya berlaku untuk file yang belum dilacak.
- Clone baru mengembalikan berkas ini ke keadaan bawaan. Jika aturan yang sama dibutuhkan di beberapa komputer, gitignore global lebih cocok.
- Jika Anda menyalin repositori ke folder bersama beserta direktori
.git, aturannya ikut terbawa.
Referensi
- Dokumentasi resmi gitignore: $GIT_DIR/info/exclude
- GitHub Docs: Excluding local files without creating a .gitignore file
- Diperiksa per: 2026-09-23 (contoh prioritas diverifikasi dengan git 2.50.1)