Github 프로젝트 내부의 검색 코드


272

Github 프로젝트의 코드 내부에서 무언가를 grep하는 방법이 있습니까?

소스를 가져 와서 로컬에서 grep 할 수는 있지만 웹 인터페이스 또는 타사 대안을 통해 가능한지 궁금합니다.

아이디어?


또한 checkout code.ohloh.net :)
obimod


답변:


255

2013 년 1 월 업데이트 : 새로운 검색이 도착했습니다! elasticsearch.org를 기반으로 :

루비 저장소 내에서 통계를 검색하는 것은로 표현되며 stat repo:ruby/ruby이제는 TM으로 작동 합니다.
(레포 이름은 대소 문자를 구분하지 않습니다 : test repo:wordpress/wordpress와 동일을 리턴합니다 test repo:Wordpress/Wordpress)

여기에 이미지 설명을 입력하십시오

줄게:

여기에 이미지 설명을 입력하십시오

추종자 또는 포크를 기반 으로 한 다른 많은 검색 예제가 있습니다 .


2012 년 7 월 업데이트 (구식 GUI와 결합 된 Lucene 검색 및 잘못된 코드 색인 작성은 아카이브를 위해 여기에 보관 됨) :

SolrQuerySyntax를 기반으로 한 검색 이 이제 더 허용되고 기본 검색 선택기 인 "Everything"을 Invalid search query. Try quoting it.사용할 때 " "가 사라 집니다.)

(나는 가정 우리가 할 수있는 것보다 모든 팀 피스 그의 목표 중 하나에 있었다, "모든 GitHub의 속성에 대한 향상된 검색 경험을 해킹 ", 그리고 나는이 스택 오버플로 문제를 언급 한 시))

다음은 루비 코드 내의 grep에 대한 그림입니다. 리포지토리와 사용자를 찾을뿐만 아니라 처음부터 검색하고자하는 것 : 코드!

GitHub 더 관대 한 검색 결과


이전 호의 초기 답변 및 예시 (2012 년 9 월 => 2012 년 3 월)

고급 검색 GitHub 양식을 사용할 수 있습니다 .

  • 선택 Code, Repositories또는 Users드롭 다운에서와
  • 해당 검색 유형에 해당하는 접두사를 사용하십시오 .

예를 들어, repo:username/repo-name지시문을 사용하여 검색을 코드 저장소 로 제한하십시오 .
초기 " Advanced Search"페이지에는 다음 섹션이 포함됩니다.

코드 검색 :

코드 검색은 GitHub에 공개적으로 호스팅 된 모든 코드를 살펴 봅니다. 다음을 기준으로 필터링 할 수도 있습니다.

  • 언어 language:
  • 저장소 이름 (사용자 이름 포함) repo:
  • 파일 경로 path:

따라서 " Code"검색 선택기 를 선택하면 리포지토리 내의 텍스트에 대한 쿼리 grepping이 작동합니다.

좋은 검색 선택기


무엇 매우 도움이되지 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"type "하나 바로 아래에있는 다른 콤보 상자 이지만" " 를 사용할 수 있습니다 .)

잘못된 검색 선택기


따라서 사용자의 경험은 일반적으로 다음과 같습니다.

  • " Advanced Search" 를 클릭 하고 필터의 해당 섹션을 살펴보고 사용하려는 항목을 확인하십시오. " repo:"
  • 첫 번째 고급 검색 " repo:jruby/jruby stat"을 만들지 만 기본 검색 선택기 " Everything"
    => FAIL! (및 "Selectors-Filters"연결을 표시하는 배열이 사라짐 )
  • "검색어"선택기가 우선 합니다. 첫 번째 선택 " Repositories"( "아! 저장소에서 검색하고 싶습니다 ...")
    => FAIL!
  • 낙심 한 경우, 선택기를 Users보지 않고도 다음 선택기 (여기서는 " ")를 선택하면 한 번 더 시도해 볼 수 있습니다 ...
    => FAIL!
  • "나사, GitHub 검색이 망가 졌어 ! 나 여기서 나왔어!"
    ...
    (GitHub 고급 검색은 실제로 중단되지 않습니다. GUI 만 있습니다 ...)

다시 말해, OP Ben Humphreys 와 같이 "Github 프로젝트 코드 내부에서 무언가를 잡으 려면 Code"검색 선택기 를 선택하는 것을 잊지 마십시오 ...


당신은 물론, 시도되지 않은 repo:"jruby/jruby" stat repo:"jruby" stat jruby: stat어떤 작품의 어떤 것도
톰 H


1
@DannyStaple 글쎄, 그들은 당신이 github.com/blog/1116-tim-pease-is-a-githubber에 설명 된 미션을 보면 문제를 알고있는 것 같습니다 : "Tim은 아마도 [...] 모든 GitHub 속성에 대한 개선 된 검색 환경 해킹 " 자신의 GitHub의 트윗 (에 댓글을 올리려면 확인 twitter.com/#!/github/status/197070106768048128 나는 (처럼) twitter.com/#!/VonC_/status/197565733830541313 )
VonC

9
FWIW 검색을 내 repos로 제한 할 때 검색 결과를 얻지 못했기 때문에 GitHub에 연락했습니다. 팀 피즈 (Tim Pease)는 리포 인덱스의 볼륨에 문제가 있다고 응답하여 샤딩 된 인덱스 서버로 마이그레이션하고 있습니다. 모든 리포지토리가 마이그레이션 될시기에 대한 ETA는 없습니다.
M. Dudley

3
나는이 답변의 조언을 방금 사용했으며 나에게도 효과가 있지만 추가해야 할 한 가지주의 사항이 있습니다. GitHib가 다른 방법으로 다른 곳에 나열하더라도 레포 이름은 항상 소문자 여야합니다. 예를 들어 (위와 같이 코드 드롭 다운 등을 설정 한 후) repo : wordpress / wordpress vs repo : WordPress / WordPress ...를 사용하여 동일한 검색을 시도하십시오. 첫 번째 결과 만 생성됩니다.
ethanpil

22

최근 개인 저장소에는 해당 저장소를 검색하기위한 검색 필드가 있습니다.

여기에 이미지 설명을 입력하십시오

당황 스럽게도이 기능은 공용 리포지토리에서 사용할 수없는 것 같습니다.


1
사람들이 유료 버전으로 업그레이드 할 수있는 상업적인 움직임이 아닌지 궁금합니다. github처럼 들리지 않지만 여전히 그렇습니다.
Sylvain

3
@Sylvain 업그레이드 후에도 공개 저장소에 대한 검색 필드를 얻지 못하므로 업그레이드를 권장하지는 않습니다. 대신 기본 검색에는 개인 리포지토리가 포함되지 않은 인덱스가 사용되므로 개인 리포지토리를 지불 할 때 기능을 잃지 않기 때문에 개인 리포지토리를 통해 검색하는 다른 방법을 추가해야했기 때문에 추가 텍스트 필드.
avernet 2019

2
모든 리포지토리의 모든 코드 행에 대한 검색 색인을 갖는 오버 헤드를 상상해보십시오! 미친 것 같은! 그렇기 때문에 그들은 단지 개인 저장소를 위해서만 그렇게합니다.
Jonny Nott

1
검색은 이제 글로벌 검색과 동일하게 헤더에 있습니다.
Tib

20

최신 정보

XHR 문제 및 API 변경으로 인해 아래의 북마크릿 해킹이 중단되었습니다.

고맙게도 Github는 이제 "완전히 새로운 코드 검색"기능 을 제공합니다.


이 부두를 확인하십시오 : Github code search userscript .

지시 사항을 따르거나 스크립트 및 확장 프로그램으로 브라우저를 팽창시키는 것을 싫어하는 경우 북마크 된 사용자 스크립트 번들을 사용하십시오.

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 : 인 페이지 아약스 코드 검색을 클릭하십시오 .

주의 사항 Github는 검색하기 전에 리포지토리를 인덱싱해야합니다.

북마크릿 앞

헛소리...

이후-가장 왼쪽 탭 뒤에있는 두 번째 메뉴 표시 줄 (파일, 커밋, 분기 ...)을 확인하십시오.

주석이 달린 ECMAScript 5.1 사양 저장소에서 샘플 검색은 다음과 같습니다.

주석이 달린 ECMAScript 5.1 사양 저장소에서 샘플 검색


플러그인 (Chrome)을 사용하면 scratchdot / github-code-search 저장소에서 잘 작동하지만 다른 저장소에서는 작동하지 않습니다.
forforf

리포지토리 홈페이지에서 작동합니다. 아마도 다른 페이지에서 시도하고 있습니까? 내 게시물의 다른 저장소에 샘플 검색의 스크린 샷을 게시했습니다.
fny

아하! 실제로 이러한 검색이 실패한 이유를 발견했습니다. 리포지토리의 색인 생성을 기다려야합니다. 심각한 활성 저장소를 감안할 때 시간이 약간 걸린다고 생각합니다.
fny

2
@ user456584 저에게 뉴스입니다. 구글모질라 에게도 알려줄 수 있다.
fny

2
플러그인이 작동하지 않는 이유를 알아 냈습니다. 리포지토리 이름은 소문자이어야하기 때문입니다. (위의 VonC의 답변에 대한 내 의견 참조). 나는 이미 GitHub에 패치를 제출했다. 원 저자가 볼 수 있기를 바란다. github.com/skratchdot/github-code-search.user.js/pull/5
ethanpil

10

@VonC의 답변은 일부 리포지토리에서 작동하지만 불행히도 많은 리포지토리에서는 작동하지 않습니다. Github는 단순히 색인을 생성하지 않습니다 (원래 @emddudley에 의해 언급 됨). 그들은 그들의 웹 사이트 어느 곳에서도 이것을 언급하지 않았지만, 당신이 지원을 요청하면 알려줄 것입니다 :

보낸 사람 : Tim Pease
코드 검색 색인에 새로 푸시 된 코드를 추가하는 것을 중단했습니다. 많은 양의 코드가 현재 검색 색인을 능가했으며 더 확장 가능한 검색 아키텍처로 전환하기 위해 노력하고 있습니다. 불편을 드려 죄송합니다. 이 새로운 검색 인덱스가 언제 실행 될지에 대한 추정치는 없지만 준비가되면 블로그 게시물이 게시됩니다 (https://github.com/blog).

귀찮게 결과가 부족한 것 외에는 어떤 리포지토리가 인덱싱되지 않는지 알 수있는 방법이 없습니다 (잘못된 쿼리에서 비롯 될 수도 있음).

또한 블로그를 기다리거나 여기에서 SO를 시청하는 것 외에는이 문제를 추적 할 수있는 방법이 없습니다.

보낸 사람 : Tim Pease
문제 트래커가 내부에있는 것이 두렵지 만 새 검색 색인이 시작되는 즉시 알려 드릴 수 있습니다.


그들은 적어도 일부 검색 결과가 생략 될 수 있다고 언급해야합니다. 코드를 리팩터링 할 때 완전히 짜증나고 GitHub에서 언급하지 않은 코드를 검색합니다.
Nicodemuz


0

무료 소스 그래프 Chrome 확장 프로그램을 사용하여 Github Repositories 내부의 소스 코드를 검색합니다 ...하지만 Chrome을 먼저 다운로드 했지만 Firefox와 같은 다른 브라우저에서도 지원합니다.

난을 통해 미끄러 져 소스 포지의 크롬 확장 문서 그리고 또한 나는 몇 가지 읽어 내가 Github에서의 검색 엔진 자체 디렉토리 이름을 검색에 필요한 단지 무엇을 바라 보았다 Github에서의 코드베이스 검색 문서를

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.