मान लें कि मैं एक गिट भंडार में निहित स्रोत कोड में एक विधि का नाम बदलना चाहता हूं। मैं इसे हाथ से कर सकता था, लेकिन विधि का नाम कई स्थानों पर हो सकता है (उदाहरण के लिए, यूनिट टेस्ट, दस्तावेज़ीकरण, वास्तविक विधि)। यह जांचने के लिए कि विधि कहां उपयोग की जाती है, मैं 'git grep' का उपयोग करता हूं। मुझे केवल 'लाइनों को दिखाने के लिए' git grep 'मिलता है जिसे मैं बदलना चाहता हूं, और फिर मेरे पास उन पंक्तियों को स्वचालित रूप से बदलने के लिए वर्कफ़्लो नहीं है।क्या कोई 'गिट sed' या समकक्ष है?
मैं इस अंतिम चरण को करने के लिए स्वचालित तरीके से (गिट टूल्स का उपयोग कर रहा हूं) ढूंढ रहा हूं। मैं उम्मीद कर रहा था कि कुछ प्रकार का 'गिट sed' या समकक्ष था, लेकिन मुझे कोई नहीं मिला।
इंटरफ़ेस मैं अच्छा होगा सोच रहा हूँ: Git एसईडी के/पुराने विधि-नाम/नई विधि-नाम/जी '
मुझे संदेह है कि आपको आदेश के अंत में '$ i' की आवश्यकता है। इसके अलावा, आपको बार-बार पर्ल लॉन्च करने की आवश्यकता नहीं है। यह उन सभी फ़ाइलों को संसाधित करेगा जो आप इसे तर्क के रूप में देते हैं। तो 'perl -i.orig -pe 's/\ bold_method_name \ b/new_method_name/g' $ (git grep --full-name -l old_method_name) 'पर्याप्त होना चाहिए। – tchrist
बहुत बेहतर। मैंने स्निपेट में $ i तय कर दिया है। –
ने इसे गिट-एक्स्ट्रा में स्थानांतरित किया: https://github.com/tj/git-extras/pull/466 – anarcat