බැඳීම් අන්තර්ගතය සෙවීම සඳහා (එනම්, සත්ය පණිවිඩ ප්රභවයන්, පණිවිඩ යැවීමට හා ඒ හා සමානව), ඔබ කළ යුත්තේ:
git grep <regexp> $(git rev-list --all)
git rev-list --all | xargs git grep <expression>
ඔබ "තර්ක ලැයිස්තුව දිගු" දෝෂයකට හසු වුවහොත් එය ක්රියා කරයි.
ඔබ සමහර subtree (උදාහරණයක් ලෙස, "lib / util") වෙත සෙවුම සීමා කිරීමට අවශ්ය නම්, ඔබ වෙත ගමන් කිරීමට අවශ්ය වනු ඇත rev-list
subcommand හා 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