Git 1.9.0'da "sihirli kelime" s'ye excludeeklendi pathspec. Eşleşenler foobarhariç her dosyada arama *.javayapmak istiyorsanız şunları yapabilirsiniz:
git grep foobar -- './*' ':(exclude)*.java'
Veya !hariç tutmak için "kısa formu" kullanarak :
git grep foobar -- './*' ':!*.java'
V2.12'ye kadar git sürümlerinde, bir hariç tutma kullanırken pathspecen az bir "dahil" olması gerektiğini unutmayın pathspec. Yukarıdaki örneklerde bu ./*(geçerli dizinin altındaki her şeyi özyineli olarak ekleyin). Git v2.13 bu kısıtlama kaldırıldı ve git grep foobar -- ':!*.java'olmadan çalışır ./*.
Reponun üst kısmındaki her şeyi dahil etmek için :(top)(kısa form :) gibi bir şey de kullanabilirsiniz :/. Ancak, muhtemelen hariç tutma pathspecdurumunuzu en baştan başlayacak şekilde de ayarlamak istersiniz : :/!*.java(aksi takdirde yalnızca *.javageçerli dizininizin altındaki dosyaları hariç tutar ).
Bir izin tüm "sihirli kelime" için iyi bir referans var pathspecen git-scm.com (ya da sadece git help glossary). Bazı nedenlerden dolayı, kernel.org'daki dokümanlar, Google aramalarında sıklıkla ilk gelmelerine rağmen gerçekten güncel değil.