गिट 1.9.0 में "जादू शब्द" exclude
pathspec
एस में जोड़ा गया था।तो तुम क्या कर सकते हैं अगर आप *.java
मिलान को छोड़कर हर फ़ाइल में foobar
लिए खोज करना चाहते:
git grep foobar -- './*' ':(exclude)*.java'
या बाहर करने के लिए !
"संक्षिप्त रूप" का उपयोग:
git grep foobar -- './*' ':!*.java'
ध्यान दें कि जब एक का उपयोग कर pathspec
को बाहर निकालें, आपके पास कम से कम एक "समावेशी" pathspec
होना चाहिए। उपर्युक्त उदाहरणों में यह ./*
है (वर्तमान में वर्तमान निर्देशिका के तहत सबकुछ शामिल है)।
रेपो के शीर्ष से सबकुछ शामिल करने के लिए आप :(top)
(लघु फ़ॉर्म: :/
) जैसे कुछ भी उपयोग कर सकते हैं। लेकिन फिर आप शीर्ष से शुरू करने के लिए अपने बहिष्कार pathspec
को भी समायोजित करना चाहते हैं: :/!*.java
(अन्यथा यह केवल आपकी वर्तमान निर्देशिका के अंतर्गत *.java
फ़ाइलों को बाहर कर देगा)।
pathspec
git-scm.com (या केवल git help glossary
) पर दिए गए सभी "जादू शब्द" के लिए एक अच्छा संदर्भ है। किसी कारण से, kernel.org पर दस्तावेज़ वास्तव में पुराने हैं, भले ही वे अक्सर Google खोजों में पहले आते हैं।
इसे बैश पर करना संभव कामकाज होगा: http://stackoverflow.com/questions/216995/how-can-i-use-inverse-or-negative-wildcards-when-pattern-matching-in-a -unix-linu –
यह सुविधा 1.9.0 में जोड़ा गया था [नीचे मेरा जवाब देखें] (/ a/30084612/436287) – onlynone