एक Github परियोजना के अंदर खोज कोड


272

Github प्रोजेक्ट के कोड के अंदर किसी चीज़ के लिए grep करने का कोई तरीका है?

मैं स्रोत को खींच सकता हूं और इसे स्थानीय रूप से मिटा सकता हूं, लेकिन मैं सोच रहा था कि क्या यह वेब इंटरफेस या 3-पार्टी विकल्प के माध्यम से संभव है।

विचार?


checkout code.ohloh.net :)
obimod

जावा / स्काला रिपॉज के लिए
11

1
यहाँ पर एक फीचर अनुरोध खोला गया: github.com/isaacs/github/issues/1495
Ciro Santilli 病 at at at 法轮功

जवाबों:


255

अद्यतन जनवरी 2013: एक नई खोज आ गई है! , elasticsearch.org पर आधारित है :

माणिक रेपो के भीतर स्टेट के लिए एक खोज के रूप में व्यक्त किया stat repo:ruby/rubyजाएगा, और अब सिर्फ टीएम काम करेगा ।
(रेपो नाम संवेदनशील नहीं है: test repo:wordpress/wordpressजैसा है वैसा ही रिटर्न test repo:Wordpress/Wordpress)

यहां छवि विवरण दर्ज करें

दे देंगे:

यहां छवि विवरण दर्ज करें

और आपके पास खोज के कई अन्य उदाहरण हैं, अनुयायियों के आधार पर , या कांटे पर , या ...


अपडेट जुलाई 2012 (लुसीन खोज के पुराने दिन और खराब कोड इंडेक्सिंग, टूटी जीयूआई के साथ, संग्रह के लिए यहां रखा गया):

खोज ( SolrQuerySyntax पर आधारित ) अब अधिक अनुमत है और डिफ़ॉल्ट खोज चयनकर्ता "सब कुछ" Invalid search query. Try quoting it.का उपयोग करते समय खतरनाक " " चला गया है :)

(मुझे लगता है कि हम सभी की तुलना में कर सकते हैं टिम पीज़ की, जो अपने उद्देश्यों में से एक था "सभी गिटहब गुणों के लिए बेहतर खोज अनुभवों पर हैकिंग ", और मैंने उस समय इस स्टैक ओवरफ्लो प्रश्न का उल्लेख किया था ;)

यहाँ रूबी कोड के भीतर एक grep का चित्रण है: यह रेपो और उपयोगकर्ताओं के लिए दिखेगा, लेकिन यह भी कि मैं पहली जगह में क्या खोजना चाहता था: कोड!

GitHub अधिक अनुमेय खोज परिणाम


पूर्व अंक का प्रारंभिक उत्तर और चित्रण (सितंबर 2012 => मार्च 2012)

आप उपयोग कर सकते हैं उन्नत खोज GitHub फॉर्म का :

  • चुनें Codeड्रॉप-डाउन से , RepositoriesयाUsers
  • उपयोग उस खोज प्रकार के लिए सूचीबद्ध संबंधित उपसर्गों का करें

उदाहरण के लिए, repo:username/repo-nameखोज को एक कोड भंडार में सीमित करने के लिए निर्देश का उपयोग करें ।
प्रारंभिक " Advanced Search" पृष्ठ में अनुभाग शामिल है:

कोड खोज:

कोड खोज GitHub पर सार्वजनिक रूप से होस्ट किए गए सभी कोड के माध्यम से दिखेगा। आप इसके द्वारा फ़िल्टर भी कर सकते हैं:

  • भाषा language:
  • रिपॉजिटरी नाम (उपयोगकर्ता नाम सहित) repo:
  • फ़ाइल पथ path:

इसलिए यदि आप " Code" खोज चयनकर्ता का चयन करते हैं , तो रेपो के भीतर एक पाठ के लिए आपकी क्वेरी काम करेगी:

अच्छा खोज चयनकर्ता


क्या है अविश्वसनीय रूप से बेकार है कि GitHub से है:

  • यदि आप सही खोज चयनकर्ता रखना चाहते हैं (यहाँ " Code"), तो आपको एक त्रुटि संदेश मिलेगा:
    " Invalid search query. Try quoting it."

कोड फाइलर के लिए गलत चयनकर्ता

  • त्रुटि संदेश आपको बिल्कुल मदद नहीं करता है।
    " quoting it" की कोई राशि आपको इस त्रुटि से नहीं निकालेगी।

  • एक बार जब आपको वह त्रुटि संदेश मिल जाता है, तो आपको खोज चयनकर्ताओं (" Repositories", " Users" या " Language") और (दाएं) खोज फ़िल्टर (यहां " repo:") के बीच सही संगति की याद दिलाने वाले खंड नहीं मिलते हैं ।
    आगे आप जो भी प्रयास करेंगे, उन संघों (चयनकर्ताओं-फ़िल्टर) को वापस प्रदर्शित नहीं करेंगे। केवल त्रुटि संदेश जो आप ऊपर देख रहे हैं ...
    उन सरणियों को वापस लाने का एकमात्र तरीका " Advance Search" आइकन पर क्लिक करके है :

GitHub पर एडवांस सर्च आइकन

  • " Everything" खोज चयनकर्ता, जो कि डिफ़ॉल्ट है, वास्तव में सभी खोज फ़िल्टर के लिए गलत है ! सिवाय " " ... (आप कल्पना कर सकते हैं / मान सकते हैं कि " " आपको खोज फ़िल्टर के साथ वास्तव में जो भी खोज चयनकर्ता काम करता है उसे चुनने में आपकी सहायता करेगा , लेकिन यह भी बहुत आसान होगा।)language:
    Everythingrepo:

  • आप Advance Searchअकेले उस खोज चयनक को निर्दिष्ट नहीं कर सकते जिसे आप " " फ़ील्ड के माध्यम से चाहते हैं!
    (लेकिन आप " language:" के लिए कर सकते हैं , भले ही " Search Language" " Search for" प्रकार 'एक ... के नीचे एक और कॉम्बो बॉक्स हो ...)

गलत खोज चयनकर्ता


इसलिए, उपयोगकर्ता का अनुभव आमतौर पर इस प्रकार है:

  • आप " Advanced Search" पर क्लिक करें , फ़िल्टर के उन अनुभागों पर नज़र डालें, और ध्यान दें कि आप किसका उपयोग करना चाहते हैं: " repo:"
  • आप पहले उन्नत खोज " repo:jruby/jruby stat" बनाते हैं , लेकिन डिफ़ॉल्ट खोज चयनकर्ता " Everything"
    => के साथ FAIL! (और "चयनकर्ताओं-फिल्टर" एसोसिएशन को प्रदर्शित करने वाले सरणियाँ चली गई हैं )
  • आप ध्यान दें कि "खोजकर्ता चयनकर्ता के लिए खोजें, पहली पसंद का चयन करें " Repositories"(" दाह! मैं रिपॉजिटरी के भीतर खोज करना चाहता हूं ... ")
    => FAIL!
  • अस्वीकृत, आप चयनकर्ताओं की अगली पसंद का चयन करें (यहां, "" Users"), यहां तक ​​कि उक्त चयनकर्ता को देखे बिना, बस इसे एक और कोशिश देने के लिए ...
    => FAIL!
  • "यह पेंच, GitHub खोज टूट गया है ! मैं यहाँ से बाहर हूँ!"
    ...
    (GitHub उन्नत खोज वास्तव में टूटी नहीं है। केवल उनका GUI है ...)

इसलिए, यदि आप "गिथब प्रोजेक्ट के कोड के अंदर किसी चीज़ के लिए जीआरपी" बनाना चाहते हैं, तो ओपी बेन हम्फ्रीज़ के रूप में , Code"खोज चयनकर्ता" का चयन करना न भूलें ...


क्या आप निश्चित हैं, मैंने कोशिश की कि repo:"jruby/jruby" stat repo:"jruby" stat jruby: statइनमें से कोई भी काम न करे
टॉम एच

@TomH: पहली नज़र में, यह GitHub की तरफ एक बग हो सकता है, जैसा कि superuser.com/a/179900/141
VONC

1
@DannyStaple खैर, वे लगते हैं अगर आप मिशन में वर्णित को देखो, इस मुद्दे से अवगत होने के लिए github.com/blog/1116-tim-pease-is-a-githubber : "टिम सबसे अधिक संभावना हो जाएगा [...] सभी GitHub संपत्तियों के लिए बेहतर खोज अनुभवों पर हैकिंग "। उनके GitHub ट्वीट ( twitter.com/#//github/status/197070106768048128 ) पर उत्तर देना सुनिश्चित करें , जैसे मैंने किया ( twitter.com/#//VonC_/status/19757733830541313 )
VonC

9
FWIW मैंने GitHub से संपर्क किया क्योंकि मेरे रिपॉजिट पर खोजों को प्रतिबंधित करने पर मुझे कोई खोज परिणाम नहीं मिल रहा है। टिम पेज़ ने जवाब दिया कि उन्हें रेपो इंडेक्स की मात्रा के साथ कठिनाई हो रही थी, इसलिए वे शार्क इंडेक्स सर्वर पर माइग्रेट कर रहे हैं। सभी रेपो माइग्रेट होने पर कोई ETA नहीं है।
एम। डडले

3
मैंने केवल इस उत्तर की सलाह का उपयोग किया है और यह मेरे लिए भी काम कर रहा है, लेकिन मुझे जोड़ने के लिए एक चेतावनी है। रेपो नाम हमेशा लोअरकेस में होना चाहिए भले ही GitHib इसे हर जगह एक अलग तरीके से सूचीबद्ध करता है। उदाहरण के लिए, (कोड ड्रॉपडाउन, आदि के रूप में ऊपर सेट करने के बाद) के साथ एक ही खोज का प्रयास करें: रेपो: वर्डप्रेस / वर्डप्रेस बनाम रेपो: वर्डप्रेस / वर्डप्रेस ... केवल पहले परिणाम देगा।
एथनपिल

22

हाल के निजी रिपॉजिटरी में उस रेपो के माध्यम से खोज करने के लिए एक खोज क्षेत्र है।

यहां छवि विवरण दर्ज करें

हालांकि, ऐसा लगता है कि यह कार्यक्षमता सार्वजनिक रिपॉजिटरी के लिए उपलब्ध नहीं है, हालांकि।


1
मुझे आश्चर्य है कि अगर यह लोगों को भुगतान संस्करण में अपग्रेड करने के लिए एक कम व्यावसायिक कदम है? गितुब की तरह आवाज नहीं करता है, लेकिन फिर भी।
सिल्वेन

3
@ सिल्वेन ऐसा नहीं लगता कि यह उन्नयन के लिए एक प्रोत्साहन के रूप में किया जाता है, जैसा कि उन्नयन के बाद भी, आपको सार्वजनिक रिपॉजिटरी के लिए खोज क्षेत्र नहीं मिलेगा। इसके बजाय, मुझे लगता है कि मुख्य खोज एक इंडेक्स का उपयोग करती है जिसमें निजी रिपॉजिटरी शामिल नहीं होते हैं, और इसलिए जब आप एक निजी रिपॉजिटरी के लिए भुगतान करते हैं तो आप ढीली कार्यक्षमता नहीं रखते हैं, उन्हें केवल उस निजी रिपॉजिटरी के माध्यम से खोज करने के लिए एक और तरीका जोड़ना होगा, इसलिए अतिरिक्त पाठ का क्षेत्र।
औसत 23

2
प्रत्येक रेपो में कोड की प्रत्येक पंक्ति के लिए एक खोज सूचकांक रखने वाले उनके उपरी भाग की कल्पना करें! पागल! इसलिए वे इसे केवल निजी रेपो के लिए करते हैं ..
जॉनी नॉट

1
खोज अब हेडर में है, वैश्विक खोज के समान।
टीआईबी

20

अपडेट करें

XHR मुद्दों और API परिवर्तनों के कारण नीचे का बुकमार्क हैक हो गया है।

शुक्र है कि जीथब के पास अब "ए होल न्यू कोड सर्च" है जो शानदार काम करता है।


इस वूडू को चेकआउट करें: जीथब कोड सर्च यूजरस्क्रिप्ट

वहां दिए गए निर्देशों का पालन करें, या यदि आप स्क्रिप्ट और एक्सटेंशन के साथ अपने ब्राउज़र को ब्लोटिंग से नफरत करते हैं, तो उपयोगकर्ता बुकमार्क के मेरे बुकमार्क बंडल का उपयोग करें:

javascript:(function(){var s='https://github.com/skratchdot/github-code-search.user.js/raw/master/github-code-search.user.js',t='text/javascript',d=document,n=navigator,e;(e=d.createElement('script')).src=s;e.type=t;d.getElementsByTagName('head')[0].appendChild(e)})();doIt('');void('');

ऊपर दिए गए स्रोत को एक नए बुकमार्क के URL के रूप में सहेजें। किसी भी Github रेपो में ब्राउज़ करें, बुकमार्क पर क्लिक करें और bam : in-page, ajaxified code search करें

आपके खोज करने से पहले CATAT Github को एक रेपो को अनुक्रमित करना चाहिए।

बुकमार्क से पहले

मंत्र ...

के बाद - बाईं ओर के टैब के बाद दूसरे मेनूबार में देखें: फाइलें, कमिट, शाखाएं ...

यहाँ एनोटेट ईसीएमएस्क्रिप्ट 5 विनिर्देशन रिपॉजिटरी से एक नमूना खोज है:

एनोटेट ईसीएमएस्क्रिप्ट 5 विनिर्देशन रिपॉजिटरी में नमूना खोज


जब मैं प्लगइन (क्रोम) का उपयोग करता हूं तो यह स्क्रैडडॉट / जीथब-कोड-सर्च रेपो में ठीक काम करता है, लेकिन किसी भी अन्य रेपो में नहीं।
forforf

इसे किसी भी रेपो होम पेज में काम करना चाहिए। शायद आप एक अलग पृष्ठ से कोशिश कर रहे हैं? मैंने अपनी पोस्ट में एक अलग रिपॉजिटरी में एक नमूना खोज का स्क्रीनशॉट पोस्ट किया।
22

अहा! मुझे वास्तव में पता चला कि वे खोजें विफल क्यों हुईं: एक रेपो को अनुक्रमण के लिए अपनी बारी का इंतजार करना चाहिए। Zillion सक्रिय रिपॉजिटरी को देखते हुए, मुझे संदेह है कि थोड़ा समय लगता है।
fny

2
@ user456584 मेरे लिए यह खबर है। आप Google और मोज़िला को भी बता सकते हैं।
fny

2
मुझे पता चला कि प्लगइन काम क्यों नहीं कर रहा है, इसका कारण यह है कि रेपो नाम को कम मामले में होना चाहिए। (ऊपर VonC के उत्तर के लिए मेरी टिप्पणी देखें)। मैंने पहले से ही GitHub पर एक पैच प्रस्तुत किया, उम्मीद है कि मूल लेखक इसे देखेंगे। github.com/skratchdot/github-code-search.user.js/pull/5
ethanpil

10

जबकि @ VonC का जवाब कुछ रिपॉजिटरी के लिए काम करता है, दुर्भाग्य से कई रिपॉजिटरी के लिए जो आप अभी नहीं कर सकते। Github बस उन्हें अनुक्रमित नहीं कर रहा है (जैसा कि मूल रूप से @emddudley द्वारा टिप्पणी की गई थी)। उन्होंने अपनी वेबसाइट पर कहीं भी यह नहीं कहा है, लेकिन यदि आप समर्थन मांगते हैं तो वे आपको बताएंगे:

से: टिम पीज़
हमने अपने कोड खोज इंडेक्स में नए पुश किए गए कोड को जोड़ना बंद कर दिया है। कोड की मात्रा ने हमारे वर्तमान खोज इंडेक्स को पछाड़ दिया है, और हम एक अधिक स्केलेबल खोज आर्किटेक्चर के लिए आगे बढ़ रहे हैं। मुझे झुंझलाहट के लिए खेद है। हमारे पास यह अनुमान लगाने के लिए नहीं है कि यह नया खोज इंडेक्स कब और ऊपर आएगा, लेकिन जब यह तैयार हो जाएगा तो एक ब्लॉग पोस्ट प्रकाशित किया जाएगा (https://github.com/blog)।

वार्षिक रूप से यह बताने का कोई तरीका नहीं है कि कौन से रिपॉजिटरी को परिणामों की कमी के अलावा अनुक्रमित नहीं किया जाता है (जो खराब क्वेरी से भी हो सकता है)।

उनके पास इस ब्लॉग पर प्रतीक्षा करने के अलावा (या SO पर यहां देखने के अलावा) इस मुद्दे को ट्रैक करने का कोई तरीका नहीं है।

से: टिम पीज़
मुझे डर है कि हमारा मुद्दा ट्रैकर आंतरिक है, लेकिन जैसे ही नया खोज सूचकांक ऊपर और चल रहा है, हम आपको सूचित कर सकते हैं।


उन्हें कम से कम उल्लेख करना चाहिए कि कुछ खोज परिणाम छोड़ दिए जा सकते हैं। यह पूरी तरह से बेकार हो जाता है जब मैं कोड को रिफ्लेक्टर करता हूं और मैं उस कोड की घटनाओं को खोजता हूं जो वहां हैं लेकिन गीथहब द्वारा उल्लेख नहीं किया गया है।
निकोडेमुज़


0

मैं फ्री सोर्सग्राफ क्रोम एक्सटेंशन के साथ जीथब रिपोजिटरीज़ के अंदर स्रोत कोड खोजता हूं ... लेकिन मैंने पहले क्रोम डाउनलोड किया , मुझे पता था कि अन्य ब्राउज़र इसे समर्थन करते हैं, जैसे कि - और शायद सिर्फ - फ़ायरफ़ॉक्स।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.