Dalam git 1.9.0 "kata ajaib" exclude
ditambahkan ke pathspec
s. Jadi jika Anda ingin mencari foobar
di setiap file kecuali yang cocok, *.java
Anda dapat melakukannya:
git grep foobar -- './*' ':(exclude)*.java'
Atau menggunakan !
"formulir singkat" untuk mengecualikan:
git grep foobar -- './*' ':!*.java'
Perhatikan bahwa dalam versi git hingga v2.12, saat menggunakan pengecualian pathspec
, Anda harus memiliki setidaknya satu "inklusif" pathspec
. Dalam contoh di atas ini adalah ./*
(secara rekursif menyertakan semuanya di bawah direktori saat ini). Dalam git v2.13 pembatasan ini dicabut dan git grep foobar -- ':!*.java'
berfungsi tanpa ./*
.
Anda juga dapat menggunakan sesuatu seperti :(top)
(formulir pendek:) :/
untuk memasukkan semuanya dari atas repo. Tetapi kemudian Anda mungkin juga ingin menyesuaikan pengecualian Anda pathspec
untuk memulai dari atas: :/!*.java
(jika tidak, itu hanya akan mengecualikan *.java
file dari bawah direktori Anda saat ini).
Ada referensi yang baik untuk semua "kata ajaib" diperbolehkan dalam pathspec
di git-scm.com (atau hanya git help glossary
). Untuk beberapa alasan, dokumen di kernel.org benar-benar ketinggalan zaman meskipun mereka sering muncul pertama kali dalam pencarian google.