उस Git इस के लिए, उदाहरण के लिए उपयोग कर सकते हैं (स्वरूपण उद्देश्यों के लिए एक से अधिक पंक्ति में विभाजित) जो वर्तमान-शाखा-पहुंच योग्य कामों की पुनरावृत्ति को प्रभावित करता है जी path
जहां git show -p
में pattern
दिया गया है। यह सही नहीं है (यह प्रतिबद्ध संदेशों के साथ-साथ diffs से मेल खाएगा) लेकिन यहां से आपको पसंद करना चाहिए, लेकिन इसे यहां से ट्विक करना आसान होना चाहिए।
git rev-list HEAD -- path |
while read rev; do
if git show -p $rev | grep pattern >/dev/null; then
echo $rev
fi
done
ध्यान दें कि आप के साथ git show
जगह ले सकता है, उदाहरण के लिए, git diff $rev^ $rev
(ध्यान दें कि यह केवल प्रथम माता पिता के खिलाफ तुलना अगर यह एक मर्ज है), या git whatchanged $rev
, या जो कुछ भी आप की तरह। मुख्य चाल सभी उम्मीदवारों को निकालने के लिए git rev-list
से शुरू करना है (दिए गए पथ को प्रभावित करने वाली प्रतिबद्धता; से शुरू होने वाले सभी कामों को प्राप्त करने के लिए -- path
भाग छोड़ दें)। git rev-list
के साथ आप अन्य कई चीजों के लिए git-rev-list(1) देखें।
स्रोत
2013-08-21 17:48:05
क्या आप इसकी समीक्षा करना चाहते हैं जवाब? मेरा मानना है कि अन्य उत्तरों एक स्क्रिप्ट से बेहतर हैं (वास्तव में एक पंक्ति होगी) और एक अधिक विस्तृत स्पष्टीकरण प्रदान करता है –