हालांकि इडिडक की प्रतिक्रिया बहुत अच्छी है, और अप्रेंटिस 5 इसका उपयोग करने के लिए एक स्क्रिप्ट प्रदान करता है, मैंने पाया कि यह उस दृष्टिकोण का उपयोग करने के लिए थोड़ा प्रतिबंधित है।
कभी-कभी आपको किसी ऐसी चीज की तलाश करने की जरूरत होती है, जो समय के साथ दिखाई दे / गायब हो जाए, तो क्यों न सभी कमिट के खिलाफ खोज की जाए? इसके अलावा, कभी-कभी आपको एक क्रिया प्रतिक्रिया की आवश्यकता होती है, और अन्य समय केवल मैच करते हैं। यहां उन विकल्पों के दो संस्करण दिए गए हैं। अपने रास्ते पर इन लिपियों रखो:
Git-ढूंढें फ़ाइल
for branch in $(git rev-list --all)
do
if (git ls-tree -r --name-only $branch | grep --quiet "$1")
then
echo $branch
fi
done
Git-खोज-फ़ाइल-वर्बोज़
for branch in $(git rev-list --all)
do
git ls-tree -r --name-only $branch | grep "$1" | sed 's/^/'$branch': /'
done
अब आप कर सकते हैं
$ git find-file <regex>
sha1
sha2
$ git find-file-verbose <regex>
sha1: path/to/<regex>/searched
sha1: path/to/another/<regex>/in/same/sha
sha2: path/to/other/<regex>/in/other/sha
यह देखें कि गेटअप का उपयोग करके आप उस स्क्रिप्ट को सभी कमिट्स, रेफ्स, रेफ्स / हेड्स, वर्बोज़, इत्यादि की खोज के लिए बदल सकते हैं।
$ git find-file <regex>
$ git find-file --verbose <regex>
$ git find-file --verbose --decorated --color <regex>
संभावित क्रियान्वयन के लिए चेकआउट https://github.com/albfan/git-find-file ।