Git 1.9.0 में "जादू शब्द" excludeको pathspecs में जोड़ा गया था । इसलिए यदि आप foobarउन मिलानों को छोड़कर हर फ़ाइल को खोजना चाहते हैं जो *.javaआप कर सकते हैं:
git grep foobar -- './*' ':(exclude)*.java'
या बाहर करने के लिए !"संक्षिप्त रूप" का उपयोग करना:
git grep foobar -- './*' ':!*.java'
ध्यान दें कि g2 संस्करणों में v2.12 तक, एक बहिष्करण का उपयोग करते समय pathspec, आपके पास कम से कम एक "समावेशी" होना चाहिए pathspec। उपरोक्त उदाहरणों में यह है ./*(वर्तमान निर्देशिका के तहत सब कुछ शामिल है)। Git v2.13 में यह प्रतिबंध हटा दिया गया था और git grep foobar -- ':!*.java'बिना काम करता है ./*।
रेपो के शीर्ष से सब कुछ शामिल करने के लिए आप कुछ :(top)(शॉर्ट फॉर्म :) का भी उपयोग कर सकते हैं :/। लेकिन तब आप शायद pathspecऊपर से शुरू करने के लिए अपने बहिष्करण को भी समायोजित करना चाहेंगे : :/!*.java(अन्यथा यह केवल *.javaआपके अन्य निर्देशिका के तहत फ़ाइलों को बाहर करेगा )।
वहाँ सभी "जादुई शब्द" एक में अनुमति के लिए एक अच्छा संदर्भ है pathspecपर git-scm.com (या बस git help glossary)। किसी कारण के लिए, कर्नेल ओआरजी पर डॉक्स वास्तव में पुराने हैं, भले ही वे अक्सर Google खोजों में पहले आते हैं।