බැඳීම් අන්තර්ගතය සෙවීම සඳහා (එනම්, සත්ය පණිවිඩ ප්රභවයන්, පණිවිඩ යැවීමට හා ඒ හා සමානව), ඔබ කළ යුත්තේ:
git grep <regexp> $(git rev-list --all)
git rev-list --all | xargs git grep <expression> ඔබ "තර්ක ලැයිස්තුව දිගු" දෝෂයකට හසු වුවහොත් එය ක්රියා කරයි.
ඔබ සමහර subtree (උදාහරණයක් ලෙස, "lib / util") වෙත සෙවුම සීමා කිරීමට අවශ්ය නම්, ඔබ වෙත ගමන් කිරීමට අවශ්ය වනු ඇත rev-listsubcommand හා grepමෙන්ම:
git grep <regexp> $(git rev-list --all -- lib/util) -- lib/util
මෙය ඔබගේ සියලු කැපවීමේ පා through හරහා ග්රහණය වනු ඇත regexp.
විධාන දෙකෙහිම මාර්ගය පසු කිරීමට හේතුව වන්නේ rev-listසියලු වෙනස්වීම් lib/utilසිදු වූ සංශෝධන ලැයිස්තුව නැවත ලබා දෙන grepනිසා පමණක් නොව, ඔබ සෙවිය යුතු වන පරිදි ඔබ සමත් විය යුතුය lib/util.
පහත දැක්වෙන තත්වය මවා ගන්න: ආපසු ලබා දුන් එකම සංශෝධනයේ අඩංගු වෙනත් ලිපිගොනු වලද එය grepසොයාගත හැකිය ( <regexp>එම සංශෝධනයේ rev-listඑම ගොනුවේ කිසිදු වෙනසක් සිදු නොවුනත්).
ඔබේ මූලාශ්රය සෙවීමේ තවත් ප්රයෝජනවත් ක්රම කිහිපයක් මෙන්න:
පෙළ ගැලපීම සඳහා වැඩ කරන ගස සොයන්න නිත්ය ප්රකාශනය regexp:
git grep <regexp>
සාමාන්ය ප්රකාශන regexp1 හෝ regexp2 ගැලපෙන පෙළ පේළි සඳහා වැඩ කරන ගස සොයන්න:
git grep -e <regexp1> [--or] -e <regexp2>
සාමාන්ය ප්රකාශන regexp1 සහ regexp2 ගැලපෙන පෙළ රේඛා සඳහා වැඩ කරන ගස සොයන්න, ගොනු මාර්ග පමණක් වාර්තා කරන්න:
git grep -l -e <regexp1> --and -e <regexp2>
සාමාන්ය ප්රකාශන regexp1 හා සාමාන්ය පෙළට ගැලපෙන පෙළ රේඛා ඇති ගොනු සඳහා වැඩ කරන ගස සොයන්න regexp2:
git grep -l --all-match -e <regexp1> -e <regexp2>
පෙළ ගැලපෙන රටාවේ වෙනස් වූ රේඛා සඳහා වැඩ කරන ගස සොයන්න:
git diff --unified=0 | grep <pattern>
පෙළ ගැලපීම සඳහා සියලු සංශෝධන සොයන්න නිත්ය ප්රකාශන regexp:
git grep <regexp> $(git rev-list --all)
පෙළ ගැළපෙන සාමාන්ය ප්රකාශනය සඳහා rev1 සහ rev2 අතර ඇති සියලුම සංශෝධන සොයන්න regexp:
git grep <regexp> $(git rev-list <rev1>..<rev2>)
git log -Sසහ දොස් පැවරීම ගැන) * [“git log --grep” සමඟ විනෝද වන්න] [2] (කැපවීමේ පණිවිඩ සෙවීම ) * ["Git grep" සමඟ විනෝද වන්න] [3] [2]: gitster.livejournal.com/30195.html [3]: gitster.livejournal.com/27674.html