Не в Git-репозитории , а скорее в GitHub, в частности - как мне искать только сообщения коммитов определенного репозитория / ветви?
328
Не в Git-репозитории , а скорее в GitHub, в частности - как мне искать только сообщения коммитов определенного репозитория / ветви?
Ответы:
С 2017 года это функциональность, включенная в сам GitHub .
Используемый ими пример поиска
repo:torvalds/linux merge:false crypto policy
источник
Раньше вы могли это делать, но GitHub удалил эту функцию в середине 2013 года. Чтобы добиться этого локально, вы можете сделать:
(Используйте
-g
флаг, если вы хотите искать другие ветви и висячие коммиты.)источник
-g
флаг для наиболее распространенных случаев использования. Я не слишком углубился в это, но с-g
поиском, кажется, вернулся только один месяц.git log -g --grep=fix
в то время как вdevelop
филиале репо, который имеет ~ 8000 коммитов, охватывающих два года, он уходит только 2 февраля.-g
флагом.Обновление (2017/01/05):
GitHub опубликовал обновление, которое позволяет вам теперь искать в сообщениях коммитов из их пользовательского интерфейса. Смотрите сообщение в блоге для получения дополнительной информации.
У меня был тот же вопрос и я вчера связался с кем-то из GitHub:
Поскольку они переключили свою поисковую систему на Elasticsearch, поиск сообщений о коммитах с помощью пользовательского интерфейса GitHub невозможен. Но эта особенность есть в списке пожеланий команды.
К сожалению, сейчас нет даты выпуска этой функции.
источник
Краткий ответ: вы не можете искать сообщения о коммитах непосредственно на сайте github.com. В настоящее время мы рекомендуем локальное
git grep
решение, предложенное другими участниками этой темы.В какой-то момент GitHub действительно предлагал
git grep
стиль поиска по сообщениям фиксации для одного репозитория. К сожалению, этот подход выявил отказ в обслуживании, который мог сделать файловый сервер недоступным. По этой причине мы удалилиgit grep
поиск.Текущие оценки за пределами конверта устанавливают число коммитов в GitHub где-то около 80 миллиардов. Хотя инженеры Google смеются за нашими спинами, это довольно большое количество документов для хранения в ElasticSearch. Мы хотели бы сделать этот набор данных доступным для поиска, но это не тривиальный проект.
источник
git diff's
(имеется в виду содержание коммитов, а не метаданные коммита)Это было удалено из GitHub. Я использую:
Вы также можете отфильтровать по автору:
источник
Со страницы помощи на поиску кода кажется, что это пока невозможно.
Вы можете искать текст в своем хранилище, включая возможность выбирать файлы или пути для поиска, но вы не можете указать, что вы хотите искать в коммитах.
Может предложить им это ?
источник
Вы можете сделать это с репозиториями, которые были просканированы Google (результаты варьируются от репозитория к репозиторию).
Искать во всех ветках всех сканируемых репозиториев «изменить лицензию»
Поищите основную ветку всех просканированных репозиториев по запросу «изменить лицензию»:
Искать в главной ветке всех просканированных репозиториев в Твиттере «изменение лицензии»
Поиск во всех ветках хранилища twitter / some_project по запросу «изменить лицензию»
источник
Обновление января 2017 года (два года спустя):
Теперь вы можете искать сообщения коммитов ! (пока только в мастер ветке)
Февраль 2015: Не уверен, что это когда-либо будет возможно, учитывая текущую базу поисковой инфраструктуры Elasticsearch (введена в январе 2013 г. ).
В качестве ответа «взято из достоверных и / или официальных источников», здесь приводится интервью с людьми из GitHub, отвечающими за представление Elasticsearch на GitHub (август 2013 г.)
Это означает, что не все ветви всех репо будут проиндексированы с таким подходом.
Поиск сообщений о глобальной фиксации пока недоступен.
И сам Тим Пиз подтверждает, что сообщения о коммитах не индексируются .
Обратите внимание, что невозможно получить собственную локальную индексацию эластичного поиска для локального клона: см. « Поиск в git-репозитории с помощью ElasticSearch »
Но для конкретного репо проще всего его клонировать и сделать:
(Дополнительные параметры в « Как найти Git-репозиторий по сообщению коммита? »)
источник
Поскольку это было удалено из GitHub, я использую это
gitk
для Linux.Из терминала перейдите в свой репозиторий и введите
gitk
.В середине графического интерфейса есть окно поиска. Это обеспечивает хороший выбор фильтров:
Область действия - содержит, касаясь пути, добавление / удаление строки, изменение соответствия строки
Тип соответствия - Точный / IgnCase / Regexp
Поля поиска - Все поля / Заголовок / Комментарии / Коммиттер
источник
Это хорошо работает в Eclipse , пока GitHub не добавит функцию:
EGit / Руководство пользователя, Поиск коммитов
источник
Если у вас есть локальная версия репозитория, вы можете попробовать этот грубый сценарий оболочки, который я написал, чтобы открыть страницы GitHub для всех коммитов, соответствующих вашему поисковому запросу, на новых вкладках в браузере по умолчанию:
Просто замените
https://github.com/RepoOwnerUserName/RepoName/
фактическим URL-адресом GitHub вашего репозитория, сохраните скрипт где-нибудь (напримерgithubsearch.sh
, сделайте его исполняемым (chmod +x githubsearch.sh
), а затем добавьте следующий псевдоним в ваш~/.bashrc
файл:Затем из любого места в вашем Git-репозитории просто сделайте это в терминале:
и любые коммиты, соответствующие вашему (без учета регистра) поискового запроса, будут иметь соответствующие страницы GitHub, открытые в вашем браузере. (Имейте в виду, что если ваш поисковый запрос появляется в сотнях коммитов, это может привести к сбою в работе вашего браузера и на некоторое время поглотит процессор вашего ПК.)
источник
Начиная с середины 2019 года, просто введите все, что вы хотите найти, в верхнем левом окне поиска и нажмите «Подтвердить».
источник