यदि आप सभी कमिट्स को ढूंढना चाहते हैं जहां प्रतिबद्ध संदेश में दिए गए शब्द, उपयोग हैं
$ git log --grep=word
यदि आप सभी कमिट्स को ढूंढना चाहते हैं, जहां फ़ाइल सामग्री में "शब्द" जोड़ा या हटा दिया गया था (अधिक सटीक होने के लिए: जहां "शब्द" के होने की संख्या बदल गई है), यानी प्रतिबद्ध सामग्री खोजें , तो तथाकथित 'पिकैक्स' खोज का उपयोग करें
$ git log -Sword
आधुनिक गिट में भी है
$ git log -Gword
उन अंतरों को देखने के लिए जिनके जोड़ा या हटाए गए लाइन "शब्द" ( सामग्री के लिए भी ) से मेल खाते हैं ।
ध्यान दें कि -G
डिफ़ॉल्ट रूप से एक रेगेक्स को -S
स्वीकार करता है , जबकि एक स्ट्रिंग को स्वीकार करता है, लेकिन का उपयोग करके रेगेक्स को स्वीकार करने के लिए संशोधित किया जा सकता है --pickaxe-regex
।
के बीच अंतर उदाहरण देकर स्पष्ट करने -S<regex> --pickaxe-regex
और -G<regex>
विचार एक ही फ़ाइल में निम्न diff के साथ प्रतिबद्ध:
+ return !regexec(regexp, two->ptr, 1, ®match, 0);
...
- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);
जबकि git log -G"regexec\(regexp"
यह प्रतिबद्ध दिखाएगा, git log -S"regexec\(regexp" --pickaxe-regex
नहीं करेगा (क्योंकि उस तार की घटनाओं की संख्या में बदलाव नहीं हुआ था)।
Git 2.25.1 (फरवरी 2020) के साथ, प्रलेखन उन regexes के आसपास स्पष्ट किया गया है।
मार्टिन (gren (``) द्वारा प्रतिबद्ध 9299f84 (06 फ़रवरी 2020) देखें । ( जूनियो सी हमानो द्वारा विलय - - में 0d11410 , 12 फरवरी 2020)
gitster
diff-options.txt
: उदाहरण में "रेगेक्स" अधिभार से बचें
रिपोर्ट-बाय: एडम डिनवुड
साइन-ऑफ-बाय: मार्टिन Reviewedgren समीक्षित-द्वारा: टेलर ब्लाउ
जब हम -G
और -S
(का उपयोग करते हुए --pickaxe-regex
) के बीच के अंतर को उदाहरण देते हैं, तो हम ऐसा करते हैं एक उदाहरण का उपयोग करते हुए और git diff
"regexec", "regexp", "regmatch" को शामिल करते हुए, ...
उदाहरण सही है, लेकिन हम "regex। *" लिखने से बचना आसान बना सकते हैं जब तक कि वास्तव में हमारी बात बनाने की आवश्यकता न हो।
इसके बजाय कुछ बने-बनाए, गैर-रीजेंसी शब्दों का उपयोग करें।
git diff
प्रलेखन अब में शामिल हैं:
के बीच अंतर उदाहरण देकर स्पष्ट करने -S<regex> --pickaxe-regex
और
-G<regex>
विचार एक ही फ़ाइल में निम्न diff के साथ प्रतिबद्ध:
+ return frotz(nitfol, two->ptr, 1, 0);
...
- hit = frotz(nitfol, mf2.ptr, 1, 0);
जबकि git log -G"frotz\(nitfol"
यह प्रतिबद्ध दिखाएगा, git log
-S"frotz\(nitfol" --pickaxe-regex
नहीं करेगा (क्योंकि उस तार की घटनाओं की संख्या में बदलाव नहीं हुआ था)।