Có cách nào để grep cho một cái gì đó bên trong mã của dự án Github không?
Tôi có thể lấy nguồn và grep nó cục bộ, nhưng tôi tự hỏi liệu nó có thể thông qua giao diện web hoặc một sự thay thế của bên thứ 3 không.
Ý tưởng?
Có cách nào để grep cho một cái gì đó bên trong mã của dự án Github không?
Tôi có thể lấy nguồn và grep nó cục bộ, nhưng tôi tự hỏi liệu nó có thể thông qua giao diện web hoặc một sự thay thế của bên thứ 3 không.
Ý tưởng?
Câu trả lời:
Cập nhật tháng 1 năm 2013: một tìm kiếm hoàn toàn mới đã đến! , dựa trên elaticsearch.org :
Một tìm kiếm cho stat trong repo ruby sẽ được thể hiện dưới dạng stat repo:ruby/ruby
, và bây giờ sẽ chỉ hoạt động TM .
(tên repo không phân biệt chữ hoa chữ thường: test repo:wordpress/wordpress
trả về giống như test repo:Wordpress/Wordpress
)
Sẽ cho:
Và bạn có nhiều ví dụ khác về tìm kiếm, dựa trên người theo dõi hoặc trên dĩa hoặc ...
Cập nhật tháng 7 năm 2012 (ngày cũ của tìm kiếm Lucene và lập chỉ mục mã kém, kết hợp với GUI bị hỏng, được giữ ở đây để lưu trữ):
Tìm kiếm (dựa trên SolrQuerySyntax ) giờ đây dễ dàng hơn và "" đáng sợ Invalid search query. Try quoting it.
sẽ biến mất khi sử dụng bộ chọn tìm kiếm mặc định "Mọi thứ" :)
(Tôi cho rằng tất cả chúng ta đều có thể hơn Tim Pease , người có một trong những mục tiêu của mình là "hack các trải nghiệm tìm kiếm được cải thiện cho tất cả các thuộc tính GitHub ", và tôi đã đề cập đến câu hỏi Stack Overflow này vào thời điểm đó;))
Dưới đây là một minh họa về một grep trong mã ruby: nó sẽ tìm kiếm repos và người dùng, nhưng cũng cho thứ tôi muốn tìm kiếm ở vị trí đầu tiên: mã!
Câu trả lời ban đầu và minh họa về vấn đề cũ (tháng 9 năm 2012 => tháng 3 năm 2012)
Bạn có thể sử dụng biểu mẫu GitHub tìm kiếm nâng cao :
Code
, Repositories
hoặc Users
từ trình đơn thả xuống vàVí dụ: Sử dụng lệnh repo:username/repo-name
để giới hạn tìm kiếm trong kho lưu trữ mã .
Trang "" ban đầu Advanced Search
bao gồm phần:
Tìm kiếm mã :
Tìm kiếm Mã sẽ xem qua tất cả các mã được lưu trữ công khai trên GitHub. Bạn cũng có thể lọc theo:
- ngôn ngữ
language:
- tên kho lưu trữ (bao gồm tên người dùng)
repo:
- đường dẫn tập tin
path:
Vì vậy, nếu bạn chọn Code
bộ chọn tìm kiếm "", thì truy vấn của bạn cho một văn bản trong một repo sẽ hoạt động:
Điều vô cùng không có ích từ GitHub là:
Code
"), bạn sẽ nhận được thông báo lỗi: Invalid search query. Try quoting it.
" thông báo lỗi không giúp bạn chút nào.
Không có số lượng " quoting it
" sẽ giúp bạn thoát khỏi lỗi này.
một khi bạn nhận được thông báo lỗi đó, bạn sẽ không nhận được các phần nhắc nhở bạn về mối liên hệ đúng giữa các bộ chọn tìm kiếm (" Repositories
", " Users
" hoặc " Language
") và các bộ lọc tìm kiếm (bên phải) (ở đây " repo:
").
Bất kỳ nỗ lực nào nữa bạn sẽ không hiển thị lại các liên kết đó (bộ chọn-bộ lọc). Chỉ thông báo lỗi bạn thấy ở trên ...
Cách duy nhất để lấy lại các mảng đó là bằng cách nhấp vào Advance Search
biểu tượng "":
các " Everything
" tìm kiếm chọn, đó là mặc định, thực sự là sai một cho tất cả các bộ lọc tìm kiếm! Ngoại trừ " language:
" ...
(Bạn có thể tưởng tượng / giả sử rằng " Everything
" sẽ giúp bạn chọn bất kỳ bộ chọn tìm kiếm nào thực sự hoạt động với bộ lọc tìm kiếm " repo:
", nhưng không. Điều đó quá dễ dàng)
bạn không thể chỉ định bộ chọn tìm kiếm mà bạn muốn thông qua trường " Advance Search
"!
(nhưng bạn có thể cho " language:
", mặc dù " Search Language
" là một hộp tổ hợp khác ngay bên dưới " Search for
" 'loại' một ...)
Vì vậy, trải nghiệm của người dùng thường như sau:
Advanced Search
", lướt qua các phần của bộ lọc và chú ý đến phần bạn muốn sử dụng: " repo:
"repo:jruby/jruby stat
", nhưng với bộ chọn Tìm kiếm mặc định " Everything
" FAIL
! (và các mảng hiển thị liên kết "Bộ chọn-Bộ lọc" đã biến mất )Repositories
" ("Dah! Tôi muốn tìm kiếm trong kho ...") FAIL
!Users
"), mà không cần nhìn vào bộ chọn đã nói, chỉ để thử thêm một lần nữa ... FAIL
!Vì vậy, để tóm tắt lại, nếu bạn muốn "grep cho thứ gì đó bên trong mã của dự án Github", như OP Ben Humphreys , đừng quên chọn " Code
" bộ chọn tìm kiếm ... "
repo:"jruby/jruby" stat
repo:"jruby" stat
jruby: stat
không cái nào hoạt động
Các kho riêng gần đây có một trường tìm kiếm để tìm kiếm thông qua repo đó.
Mặc dù vậy, có vẻ như chức năng này không có sẵn cho các kho lưu trữ công cộng.
CẬP NHẬT
Việc hack bookmarklet dưới đây bị hỏng do sự cố XHR và thay đổi API.
Rất may, Github hiện có "Tìm kiếm mã hoàn toàn mới" , công việc này rất tuyệt vời.
Kiểm tra voodoo này: mã người dùng tìm kiếm mã Github .
Thực hiện theo các hướng dẫn ở đó hoặc nếu bạn ghét làm đầy trình duyệt của mình với các tập lệnh và tiện ích mở rộng, hãy sử dụng gói tài liệu được đánh dấu của tôi:
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('');
Lưu nguồn ở trên dưới dạng URL của dấu trang mới. Duyệt đến bất kỳ repo Github nào, nhấp vào dấu trang và bam : in-page, tìm kiếm mã ajaxified .
CAVEAT Github phải lập chỉ mục một repo trước khi bạn có thể tìm kiếm nó.
Abracadabra ...
Đây là một tìm kiếm mẫu từ kho lưu trữ đặc tả ECMAScript 5.1 được chú thích:
Mặc dù câu trả lời của @ VonC hoạt động đối với một số kho lưu trữ, nhưng thật không may cho nhiều kho lưu trữ mà bạn không thể ngay bây giờ. Github chỉ đơn giản là không lập chỉ mục cho chúng (như nhận xét ban đầu bởi @emddudley). Họ chưa nói điều này ở bất cứ đâu trên trang web của họ, nhưng họ sẽ cho bạn biết nếu bạn yêu cầu hỗ trợ:
Từ: Tim Pease
Chúng tôi đã ngừng thêm mã mới được đẩy vào chỉ mục tìm kiếm mã của chúng tôi. Khối lượng mã đã vượt xa chỉ số tìm kiếm hiện tại của chúng tôi và chúng tôi đang nỗ lực chuyển sang kiến trúc tìm kiếm có thể mở rộng hơn. Tôi xin lỗi vì sự khó chịu. Chúng tôi không có ước tính khi nào chỉ mục tìm kiếm mới này sẽ hoạt động, nhưng khi nó sẵn sàng, một bài đăng blog sẽ được xuất bản (https://github.com/blog).
Khó chịu là không có cách nào để biết kho nào không được lập chỉ mục ngoài việc thiếu kết quả (cũng có thể là từ một truy vấn xấu).
Cũng không có cách nào để theo dõi vấn đề này ngoài việc chờ họ viết blog (hoặc xem ở đây trên SO).
Từ: Tim Pease
Tôi sợ trình theo dõi vấn đề của chúng tôi là nội bộ, nhưng chúng tôi có thể thông báo cho bạn ngay khi chỉ mục tìm kiếm mới hoạt động.
Google cho phép bạn tìm kiếm trong dự án, nhưng không phải mã :(
Tôi tìm kiếm mã nguồn bên trong Kho lưu trữ Github bằng Tiện ích mở rộng nguồn Chrome miễn phí ... Nhưng tôi đã tải xuống Chrome trước , tôi biết các trình duyệt khác hỗ trợ mặc dù, chẳng hạn như - và có lẽ chỉ - Firefox.
Tôi đọc lướt qua Tài liệu mở rộng Chrome của SourceForge và sau đó tôi cũng xem xét những gì tôi cần để tìm kiếm tên thư mục với chính Công cụ tìm kiếm của Github, bằng cách đọc một số Tài liệu tìm kiếm Codebase của Github