github에서 검색하여 정확히 일치하는 항목을 얻는 방법 (예 : Google의 인용 부호)


218

과 같은 따옴표를 사용하여 Google에서 정확히 일치하는 항목을 검색 할 수 있습니다 "system <<-". github에 대해 비슷한 작업을 수행하는 방법은 무엇입니까? 나는 그것을 작동시킬 수 없다.

답변:


130

당신은 할 수 없습니다. 공식 GitHub 검색 규칙 :

검색 코드의 복잡성으로 인해 검색 수행 방법에 대한 몇 가지 제한 사항이 있습니다.

  • 기본 브랜치 만 고려됩니다. 대부분의 경우 마스터 브랜치가됩니다.
  • 384KB 보다 작은 파일 만 검색 할 수 있습니다.
  • 소스 코드를 검색 할 때는 항상 하나 이상의 검색어를 포함해야합니다. 예를 들어, 검색 language:go은 유효하지 않지만amazing language:go .
  • 대부분의 경우 검색 결과는 동일한 파일에서 두 개의 조각을 표시 할 수 있지만 파일 내에 더 많은 결과가있을 수 있습니다.
  • 당신은 당신의 검색 쿼리의 일환으로 다음과 같은 와일드 카드 문자를 사용할 수 없습니다 :
    . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]
    검색은 단순히 이러한 기호를 무시합니다.

해결 방법 :

단일 저장소에서 검색해야하는 경우 로컬에서이를 복제하고 grep문자열을 정확하게 찾는 데 사용할 수 있습니다 .

grep -r "system <<-" /repository_dir

354
이것은 끔찍하다. 왜 고치지 않습니까? 이상적으로 정규식으로 검색 할 수 있어야합니다. 이걸 어떻게 항의합니까? :)
Daniel Darabos

10
지원을 요청한 후 응답했습니다. "GitHub 검색에서 특수 문자를 피하는 기능은 자주 요청되는 기능입니다. 약속을 할 수는 없지만 내부 기능 요청 목록에서 아이디어를 +1하겠습니다." . 인덱스 크기에 달려 있다고 생각합니다 .github에 너무 많은 코드가 포함되어 있습니다.
DenisKolodin

10
나는 이것이 색인 문제라고 생각합니다. 축약 형 인용 부호 검색 작업을 수행하는 것은 현재 구현보다 훨씬 어렵습니다. 정규식 검색 작업을 수행하는 것은> 1 배 이상을 어렵게하거나 문제를 요구할 가능성이 있습니다 .
Matt Kocaj

14
도트가 포함 된 리터럴 문자열은 ldap.mycomp.com어떻습니까? 정규 표현식이 필요하지 않습니다. 리터럴 문자열 검색 만 원합니다
Jason

1
Elasticsearch를 사용하기 때문에이 문제는 해결되지 않으므로 새로운 필드로 모든 데이터를 다시 색인화하여 고려해야합니다. 이는 많은 디스크를 의미합니다.
토마스 Decaux

44

Google을 직접 사용할 수 있습니다.

이건 어때요?

"your_string_to_search" site::https://github.com
"your_string_to_search" site::https://gist.github.com

81
Google이 귀하의 리포지토리에 액세스 할 수 있다고 가정하지 않습니까? 개인 저장소의 경우에는 해당되지 않습니다.
Joel B

1
repos 내부에서 작동합니다 :"alias agi=" site::https://github.com/robbyrussell/oh-my-zsh
사이트

1
@juanpastas 당신은 검색 문자열의 전체 예를 줄 수 있습니까?
mrgloom

15
Google이 정확한 검색을 강요하기 위해 인용문을 계속 존중했을 때 더 의미가 있습니다.
Kylotan

1
@FullMetalFist 예처럼 보입니다"your_string_to_search" site:https://github.com filetype:cpp
mrgloom

17

오늘은 Github의 모든 리포지토리에서 filter class이름이 일치하는 파일 을 찾으려고 노력했습니다 logback.xml. 그리고 나는 일을 한 다음 쿼리를 생각해 냈습니다.

"filter class" in:file filename:logback.xml

따옴표와 정확히 일치하도록하려면 "in : file"수정자를 사용하여 검색해야합니다. 정확하게 일치하지는 않지만 "class"라는 단어는 "filter"라는 단어를 따라야하지만 두 단어 사이에 공백이나 기호 문자가 0 개 이상있을 수 있습니다.


14
로 또는없이 검색 할 때 동작에 차이가 없습니다 in:file.
Daniel Darabos

2
나도, 그러나 인용 부호에서 "foo bar"가 인접 단어를 검색한다는 사실은 나에게 매우 유용한 뉴스입니다
Beni Cherniavsky-Paskin

3

@ mrgloom 의 답변에 추가 하여 Google을 사용하여 Github에서 특정 프로그래밍 언어로 된 코드를 찾고 있다면 Google 검색 창에서 다음과 같이 할 수 있습니다.

  • "intext :"검색 연산자를 사용하여 찾고자하는 특정 문자열을 명시하십시오
  • "ext :"연산자 (예 : "ext : py", "ext : R", "ext : rb"등)를 사용하여 관심있는 프로그래밍 언어를 추가하십시오.
  • 언급 된 "site :"연산자 mrgloom을 사용하여 Github의 모든 공개 리포지토리에서 검색합니다.

예:

intext:"%% 2 == 0" ext:R site:github.com

예제의 Google 결과


1
intext:".set(" ext:JS site:github.com 작동하지 않았다 : /
Aditya MP

네가 옳아! 왜 그런지 이해가 안 돼요 ... 시도해 보았지만 intext:"set(" inurl:.js site:github.com실제로 작동하지는 않습니다
silviaegt

1
그래서 나는 계속 읽었고 Google 검색에서 괄호가 무시되는 것처럼 보이지만 "ext"연산자가 작동하지 않는 이유를 이해할 수 없습니다. 에 따르면 는 "파일 형식"에 대한 문서화되지 않은 별명이지만, 반드시 이유 "JS는"하나로서 간주되지 않을 것이다 없습니다
silviaegt

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