Как искать в github для получения точных совпадений (например, кавычки для Google)

Я могу искать точные соответствия из Google, используя цитаты типа "system <<-". Как сделать подобную вещь для github? Я не могу заставить его работать.

Ответ 1

Ты не можешь Официальные правила поиска GitHub:

Из-за сложности поиска кода есть несколько ограничений на выполнение поиска:

  • Только ветка по умолчанию считается. В большинстве случаев это будет основная ветвь.
  • Только файлы размером менее 384 КБ доступны для поиска.
  • Вы всегда должны включать хотя бы один поисковый термин при поиске исходного кода. Например, поиск language:go недопустим, а amazing language:go is.
  • В большинстве случаев результаты поиска могут показывать два фрагмента из одного файла, но в этом файле может быть больше результатов.
  • Вы не можете использовать следующие символы подстановки как часть вашего поискового запроса:
    .,: ; /\ ' ' " = * !? # $ & + ^ | ~ < > ( ) { } [ ]
    Поиск будет просто игнорировать эти символы.

Временное решение:

Если вам нужно выполнить поиск в одном репозитории, вы можете клонировать его локально и использовать grep чтобы точно найти строку:

grep -r "system <<-" /repository_dir

Ответ 2

Вы можете напрямую использовать Google.

Как насчет этого?

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

Ответ 3

Сегодня я пытался найти точное соответствие filter class в файлах с именем logback.xml в любом репо на Github. И я придумал следующий запрос, который выполнил эту работу.

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

Чтобы включить точные совпадения с кавычками, вам необходимо следовать вашему поиску с помощью модификатора "in: file". Матчи не совсем точны, слово "класс" должно следовать слову "фильтр", но кажется, что между двумя словами может быть 0 или больше пробелов или символов.

Ответ 4

Если добавить ответ @mrgloom, если вы ищете код на определенном языке программирования в Github с помощью Google, вы можете сделать что-то подобное в строке поиска Google:

  • укажите конкретную строку, которую вы ищете, используя оператор поиска "intext:"
  • добавьте интересующий вас язык программирования, используя оператор "ext:" (т.е. "ext: py", "ext: R", "ext: rb" и т.д.)
  • поиск во всех общедоступных репозиториях в Github с использованием оператора site: упомянутый mrgloom.

Пример:

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

Google Results from the example

Ответ 5

Если ваш пакет находится в Debian, вы можете использовать их поиск кода, который поддерживает регулярные выражения: https://codesearch.debian.net/