Как искать на GitHub, чтобы получить точные совпадения (например, что цитаты делают для Google)
Я могу искать точные совпадения из Google, используя такие цитаты, как "system <<-"
, Как сделать подобное для github? Я не могу заставить это работать.
13 ответов
Ты не можешь Официальные правила поиска GitHub:
Из-за сложности поиска кода есть несколько ограничений на выполнение поиска:
- Только ветка по умолчанию считается. В большинстве случаев это будет основная ветвь.
- Только файлы размером менее 384 КБ доступны для поиска.
- Вы всегда должны включать хотя бы один поисковый запрос при поиске исходного кода. Например, поиск
language:go
не действует, покаamazing language:go
является.- В большинстве случаев результаты поиска могут отображать два фрагмента из одного файла, но в этом файле может быть больше результатов.
- Вы не можете использовать следующие символы подстановки как часть вашего поискового запроса:
. , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]
Поиск будет просто игнорировать эти символы.
Временное решение:
Если вам нужно искать в одном репозитории, вы можете клонировать его локально и использовать grep
чтобы найти строку точно:
grep -r "system <<-" /repository_dir
Вы можете использовать Google напрямую.
Как насчет этого?
"your_string_to_search" site::https://github.com
"your_string_to_search" site::https://gist.github.com
Сегодня я пытался найти точное совпадение filter class
в файлах с именем logback.xml
в любом репо на Github. И я придумал следующий запрос, который сделал эту работу.
"filter class" in:file filename:logback.xml
Чтобы включить точное совпадение с кавычками, вам необходимо выполнить поиск с модификатором "in: file". Совпадения не совсем точны, слово "класс" должно следовать за словом "фильтр", но кажется, что между двумя словами может быть 0 или более пробелов или символов символов.
- Откройте репозиторий
- Нажмите точку "." открыть интерфейс VS Code
- Перейти к поиску в левой панели
- Включите индексацию через подсказку под строкой поиска
- Ура! 🎉 точные поисковые работы
Вы можете: с декабря 2021 г. ваш поиск выполняется с
cs.github.com
, может включать специальные символы
Улучшение поиска кода GitHub
(от Павла Августинова )
Поиск точной строки с поддержкой совпадений подстрок и специальных символов или использование регулярных выражений (заключенных в
/
разделители).
Так
"system <<-"
должен работать на этом новом поисковом сайте.
Добавляя к mrgloom, если вы ищете код на определенном языке программирования в Github с помощью Google, вы можете сделать что-то вроде этого в строке поиска Google:
- укажите конкретную строку, которую вы ищете, используя оператор поиска "intext:"
- добавьте интересующий вас язык программирования с помощью оператора "ext:" (например, "ext:py", "ext:R", "ext:rb" и т. д.)
- поиск во всех публичных репозиториях в Github с использованием упомянутого оператора mrgloom "site:".
Пример:
intext:"%% 2 == 0" ext:R site:github.com
По состоянию на 02.11.2021 это возможно, заключив строку поиска в кавычки.
Хотя теперь можно искать точные строки, эта функция еще не поддерживает поиск по специальным символам. Пример:
Теперь вы можете выполнять поиск по регулярным выражениям в GitHub, используя косую черту, а не кавычки, что позволяет сопоставлять как точные строки, так и шаблоны. Попробуйте поиск/system <<-/
для точного совпадения или/system[\s]*<<-/
Например, для любого количества пробелов в середине!
Справочник GitHub: Общие сведения о синтаксисе поиска кода GitHub &gt; Использование регулярных выражений
Если ваш пакет находится в Debian, вы можете использовать их поиск кода, который поддерживает регулярные выражения: https://codesearch.debian.net/
Поисковый запрос ДОЛЖЕН быть заключен между/
(косая черта)
Пример 1
Поиск появления , будет выглядеть так/query = """/
Пример 2
Искатьquery = """
вtest_*.py
файлы, будут выглядеть такpath:**/test_*.py /query = """/
Примечания
Используйте поиск GitHub или расширенный поиск GitHub — имейте в виду, чтоadvanced search
может по-прежнему генерировать некоторые нераспознанные квалификаторы (например,filename:
)
Если ваш поисковый запрос представляет собой имя файла или другую подстроку, содержащую знаки препинания, частичный обходной путь, чтобы заставить поиск кода GitHub возвращать экземпляры этой подстроки, состоит в том, чтобы (1) заменить символы пунктуации в вашем термине поиска пробелами и поисковый запрос в кавычках.
Например, вместо использования поискового запроса:
-
repo:my_repo my_image_asset_1.svg
Пытаться:
-
repo:my_repo "my image asset 1 svg"
Это может быть не во всех случаях идеальным решением; Я предполагаю, что он также может соответствовать таким именам файлов, как
Если вы хотите быстро выполнить поиск внутри определенного репо , попробуйте следующее: