มีวิธี grep สำหรับบางสิ่งบางอย่างในรหัสของโครงการ Github หรือไม่?
ฉันสามารถดึงแหล่งที่มาและ grep ไว้ในเครื่องได้ แต่ฉันสงสัยว่าเป็นไปได้ผ่านทางเว็บอินเตอร์เฟสหรือทางเลือกอื่น
ไอเดีย?
มีวิธี grep สำหรับบางสิ่งบางอย่างในรหัสของโครงการ Github หรือไม่?
ฉันสามารถดึงแหล่งที่มาและ grep ไว้ในเครื่องได้ แต่ฉันสงสัยว่าเป็นไปได้ผ่านทางเว็บอินเตอร์เฟสหรือทางเลือกอื่น
ไอเดีย?
คำตอบ:
อัพเดทมกราคม 2013: การค้นหาใหม่ล่าสุดมาถึงแล้ว! อิงตามelasticsearch.org :
การค้นหาสถิติภายใน repo ทับทิมจะแสดงเป็นstat repo:ruby/ruby
และตอนนี้จะเป็นเพียงแค่การทำงานTM
(ชื่อ repo ไม่ได้เป็นกรณีที่สำคัญ: test repo:wordpress/wordpress
ผลตอบแทนเช่นเดียวtest repo:Wordpress/Wordpress
)
จะให้:
และคุณมีตัวอย่างอื่น ๆ ของการค้นหาตามผู้ติดตามหรือส้อมหรือ ...
อัปเดตกรกฎาคม 2555 (วันเก่าของการค้นหา Lucene และการจัดทำดัชนีรหัสที่ไม่ดีรวมกับ GUI ที่ใช้งานไม่ได้เก็บไว้ที่นี่เพื่อเก็บถาวร)
การค้นหา (ขึ้นอยู่กับSolrQuerySyntax ) ตอนนี้ได้รับอนุญาตมากขึ้นและInvalid search query. Try quoting it.
หายไป" " เมื่อใช้ตัวเลือกการค้นหาเริ่มต้น "ทุกอย่าง" :)
(ฉันคิดว่าเราสามารถทำได้มากกว่าTim Peaseซึ่งมีหนึ่งในวัตถุประสงค์ของเขา"แฮ็คในการปรับปรุงประสบการณ์การค้นหาสำหรับคุณสมบัติ GitHub ทั้งหมด " และฉันได้พูดถึงคำถาม Stack Overflowในเวลานั้น))
นี่คือภาพประกอบของ grep ภายในรหัส ruby: มันจะค้นหา repos และผู้ใช้ แต่ยังรวมถึงสิ่งที่ฉันต้องการค้นหาในตอนแรก: code!
คำตอบเบื้องต้นและภาพประกอบของปัญหาเดิม (กันยายน 2012 => มีนาคม 2012)
คุณสามารถใช้การค้นหาขั้นสูงแบบฟอร์ม GitHub :
Code
, Repositories
หรือUsers
จากเมนูแบบเลื่อนลงและตัวอย่างเช่นใช้repo:username/repo-name
คำสั่งเพื่อ จำกัด การค้นหาไปยังที่เก็บรหัส หน้า "
" เริ่มต้นAdvanced Search
รวมถึงส่วน:
ค้นหารหัส :
การค้นหารหัสจะดูรหัสทั้งหมดที่โฮสต์บน GitHub คุณยังสามารถกรองตาม:
- ภาษา
language:
- ชื่อที่เก็บ (รวมถึงชื่อผู้ใช้)
repo:
- เส้นทางไฟล์
path:
ดังนั้นหากคุณเลือกตัวเลือกการCode
ค้นหา "" การค้นหาของคุณจะทำให้ข้อความใน repo ทำงานได้:
สิ่งที่ไม่ ช่วยเหลืออย่างไม่น่าเชื่อจาก GitHub คือ:
Code
") คุณจะได้รับข้อความแสดงข้อผิดพลาด: Invalid search query. Try quoting it.
" ข้อความแสดงข้อผิดพลาดไม่ได้ช่วยอะไรคุณเลย
ไม่มีจำนวน " quoting it
" ที่จะนำคุณออกจากข้อผิดพลาดนี้
เมื่อคุณได้รับข้อความแสดงข้อผิดพลาดคุณจะไม่ได้รับส่วนที่แจ้งเตือนคุณถึงการเชื่อมโยงที่ถูกต้องระหว่างตัวเลือกการค้นหา(" Repositories
", " Users
" หรือ " Language
") และตัวกรองการค้นหา (ขวา) (ที่นี่ " repo:
")
ความพยายามเพิ่มเติมใด ๆ ที่คุณทำจะไม่แสดงการเชื่อมโยงเหล่านั้น (ตัวกรอง - ตัวกรอง) กลับมา เฉพาะข้อความแสดงข้อผิดพลาดที่คุณเห็นด้านบน ...
วิธีเดียวที่จะได้รับอาร์เรย์เหล่านั้นกลับมาคือการคลิกที่Advance Search
ไอคอน "":
"การEverything
" เลือกค้นหาซึ่งเป็นค่าเริ่มต้นเป็นจริงที่ไม่ถูกต้องหนึ่งสำหรับทั้งหมดของตัวกรองค้นหา! ยกเว้น " language:
" ...
(คุณสามารถจินตนาการ / สมมติว่า " Everything
" จะช่วยให้คุณเลือกตัวเลือกการค้นหาใดก็ได้ที่ใช้งานได้จริงกับตัวกรองการค้นหา " repo:
" แต่ไม่เช่นนั้นจะง่ายเกินไป)
คุณไม่สามารถระบุตัวเลือกการค้นหาที่คุณต้องการผ่านช่อง " Advance Search
" เพียงอย่างเดียว!
(แต่คุณสามารถใช้กับ " language:
" ได้แม้ว่า " Search Language
" จะเป็นกล่องคอมโบอื่นที่อยู่ใต้ " Search for
" '' ชนิด 'หนึ่ง ... )
ดังนั้นประสบการณ์ของผู้ใช้มักจะเป็นดังนี้:
Advanced Search
" เหลือบไปที่ส่วนของตัวกรองเหล่านั้นและสังเกตว่าคุณต้องการใช้: " repo:
"repo:jruby/jruby stat
" แต่ด้วยตัวเลือกการค้นหาเริ่มต้น " Everything
" FAIL
! (และอาร์เรย์ที่แสดงการเชื่อมโยง "ตัวกรอง - ตัวกรอง" หายไป )Repositories
" ("Dah! ฉันต้องการค้นหาภายในที่เก็บ ... ") FAIL
!Users
") โดยไม่ได้ดูตัวเลือกที่กล่าวไว้เพียงลองอีกครั้ง ... FAIL
!ดังนั้นหากคุณต้องการ "grep สำหรับสิ่งที่อยู่ในรหัสของโครงการ Github" ในฐานะ OP Ben Humphreysอย่าลืมเลือกตัวเลือกการCode
ค้นหา ... "
repo:"jruby/jruby" stat
repo:"jruby" stat
jruby: stat
ไม่ทำงานเลย
ที่เก็บส่วนตัวส่วนตัวล่าสุดมีช่องค้นหาสำหรับค้นหาผ่าน repo นั้น
อย่างน่างงงวยดูเหมือนว่าฟังก์ชันนี้ไม่สามารถใช้ได้กับที่เก็บสาธารณะ
UPDATE
bookmarklet Hack ด้านล่างนี้ใช้งานไม่ได้เนื่องจากปัญหา XHR และการเปลี่ยนแปลง API
โชคดีที่ตอนนี้ Github มี"การค้นหารหัสใหม่ทั้งหมด"ซึ่งทำงานได้อย่างยอดเยี่ยม
ชำระเงินวูดูนี้: UserScript ค้นหารหัส Github
ทำตามคำแนะนำที่นั่นหรือถ้าคุณเกลียดการเบราว์เซอร์ของคุณด้วยสคริปต์และส่วนขยายให้ใช้บันเดิลบุ๊กมาร์กของผู้ใช้ของฉันที่คั่นหน้า:
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 ของบุ๊คมาร์คใหม่ หมวดใด repo Github คลิกบุ๊กและแบม : ในหน้าค้นหารหัส ajaxified
CAVEAT Github ต้องทำดัชนี repo ก่อนจึงจะสามารถค้นหาได้
Abracadabra ...
นี่คือตัวอย่างการค้นหาจากที่เก็บข้อมูลจำเพาะ ECMAScript 5.1 ที่ทำหมายเหตุประกอบไว้:
แม้ว่าคำตอบของ @ VonC นั้นใช้ได้กับที่เก็บข้อมูลบางแห่ง แต่น่าเสียดายที่ที่เก็บข้อมูลหลายแห่งที่คุณไม่สามารถทำได้ในขณะนี้ Github ไม่ได้จัดทำดัชนีพวกเขา (ดังที่ความเห็นแรกเริ่มโดย @emddudley) พวกเขาไม่ได้แจ้งเรื่องนี้ในเว็บไซต์ของพวกเขา แต่พวกเขาจะบอกคุณว่าคุณขอความช่วยเหลือหรือไม่:
จาก: Tim Pease
เราได้หยุดเพิ่มรหัสผลักใหม่ลงในดัชนี codesearch ของเรา ปริมาณของรหัสมีจำนวนมากกว่าดัชนีการค้นหาปัจจุบันของเราและเรากำลังดำเนินการเพื่อย้ายไปยังสถาปัตยกรรมการค้นหาที่ปรับขนาดได้มากขึ้น ฉันขอโทษสำหรับความรำคาญ เราไม่มีการประมาณการว่าดัชนีการค้นหาใหม่นี้จะเปิดใช้งานเมื่อใดและเมื่อใดก็ตามที่พร้อมโพสต์บล็อกจะถูกเผยแพร่ (https://github.com/blog)
น่ารำคาญไม่มีวิธีบอกได้ว่าที่เก็บใดที่ไม่ได้จัดทำดัชนีนอกเหนือจากการขาดผลลัพธ์ (ซึ่งอาจมาจากแบบสอบถามที่ไม่ดี)
นอกจากนี้ยังไม่มีวิธีในการติดตามปัญหานี้นอกจากรอให้พวกเขาบล็อกมัน (หรือดูที่นี่ใน SO)
จาก: Tim Pease
ฉันเกรงว่าตัวติดตามปัญหาของเราอยู่ภายใน แต่เราสามารถแจ้งให้คุณทราบทันทีที่ดัชนีการค้นหาใหม่เปิดใช้งาน
Google อนุญาตให้คุณค้นหาในโครงการ แต่ไม่ใช่รหัส :(
ฉันค้นหาซอร์สโค้ดภายใน Github Repositories ที่มีSourcegraph Chrome Extensionฟรี ... แต่ฉันดาวน์โหลด Chrome ก่อนอื่นฉันรู้ว่าเบราว์เซอร์อื่น ๆ สนับสนุนแม้ว่า Firefox และอาจเป็นเพียง Firefox เท่านั้น
ฉันอ่านผ่านChrome Extension Docs ของ SourceForgeจากนั้นฉันก็มองสิ่งที่ฉันต้องการในการค้นหาชื่อไดเรกทอรีด้วย Github's Search Engine เองโดยอ่านCodebase การค้นหา Githubบางส่วน