GitHub: फ़ाइलों के पुराने संस्करणों के माध्यम से खोज


98

मुझे पता है कि GitHub का उपयोग करके मैं रेपो में अपनी फ़ाइलों के सभी वर्तमान संस्करणों के माध्यम से खोज कर सकता हूं। हालाँकि, मैं अपने रेपो फ़ाइलों के पुराने संस्करणों के माध्यम से भी खोजना चाहूंगा। उदाहरण के लिए, कहते हैं, मेरे पास अपने कोड में get_info () नामक एक फ़ंक्शन हुआ करता था, लेकिन इसे कई संस्करणों से पहले हटा दिया गया, क्या get_info की खोज करना और कोड ढूंढना संभव है। यदि यह GitHub का उपयोग करना संभव नहीं है, तो क्या यह git कमांड लाइन से संभव है?

संपादित करें

यह दिखाने के लिए @Mark Longair का धन्यवाद कि यह git कमांड लाइन से कैसे किया जा सकता है। अगर यह GitHub में संभव नहीं है, तो यह एक बड़ी विशेषता होगी।

जवाबों:


121

वर्तमान में, मुझे विश्वास नहीं है कि जीथब वेबसाइट पर एक रिपॉजिटरी के कोड के संपूर्ण इतिहास के भीतर खोज करना संभव है - निकटतम सिर्फ इस पेज पर "कोड खोज" विकल्प के साथ रिपॉजिटरी के वर्तमान कोड के भीतर खोज कर रहा है ।

हालाँकि, कमांड लाइन से, आप किसी भी ऐसे कमिट को पा सकते हैं get_infoजो -Sविकल्प के साथ उल्लेखित लाइनों को पेश या हटा दिया गया है git log। उदाहरण के लिए:

git log -Sget_info -p

(nb -Sऔर खोज शब्द के बीच कोई स्थान नहीं होना चाहिए )

(यह भी ध्यान दें: एक से अधिक शब्दों के लिए खोज करने के लिए, चारों ओर '):

git log -S'get info' -p

तो, कम से कम उस कमिटमेंट को ढूंढना चाहिए जहां फंक्शन को पहली बार पेश किया गया था और जिसे हटा दिया था। मैंने जोड़ा -pइसलिए आप पैच भी देख सकते हैं - यदि बहुत से शुरू किए गए परिवर्तनों ने फ़ंक्शन का उल्लेख किया जो सहायक हो सकता है। यदि फ़ंक्शन केवल दूसरी शाखा पर था, तो --allसभी शाखाओं की खोज के लिए इसका उपयोग करना उपयोगी हो सकता है ।

जेफ्रोमी नीचे एक टिप्पणी में बताते हैं कि git 1.7.4 -Gविकल्प के रूप में विकल्प पेश करेगा - यह परिवर्तन जूनियो हैमनो (git अनुरक्षक) के हालिया ब्लॉग पोस्ट में संक्षेप में प्रस्तुत किया गया है: http : //gitster.livejournal-48191.html


2
हां, मुझे पता है कि मैं टिप्पणियों को खोज सकता हूं, लेकिन कोड को खोजने के बारे में क्या?
मानदंड

10
-S विकल्प करता कोड में देखो - यह किसी भी प्रतिबद्ध जहां पाता get_infodiff कि प्रस्तुत किया जाने के लिए प्रतिबद्ध में निहित है। आप --grepविकल्प से भ्रमित हो सकते हैं , जो लॉग संदेशों को खोजता है।
मार्क लोंगेयर

2
@ नोर्मस्की: और गिट के हाल के संस्करणों में समान -Gविकल्प जोड़ा गया है, जो एक निश्चित स्ट्रिंग के बजाय एक रेगीक्स लेता है।
कास्कैबेल

@ जेफ्रोमी: इस बात का उल्लेख करने के लिए धन्यवाद - मैंने इसे उत्तर में जोड़ दिया है, आशा है कि यह ठीक है।
मार्क लॉन्गेयर

2
git log -S'get info' -p
@ एंथनी दमिको
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.