grep внутри git diff, но показывать номер файла и строки

Самый практичный способ проверить свое оборудование — загрузить заведомо -исправное программное обеспечение. Например, старое ядро. Старая прошивка тоже подойдет — Live CD/DVD, о которых вы знаете, отлично работает.

Кроме того, проверьте свои журналы — вы уверены, что это началось всего 2 недели назад? Или вы только тогда начали это замечать?

Кроме того, по крайней мере, если этот настольный ПК (относительно легко открыть и посмотреть ), найдите минутку, чтобы визуально проверить оборудование :, все ли вентиляторы вращаются? Отсутствуют ли какие-либо радиаторы (и нет ли на радиаторах пыли/ворсинок )? Вздутые конденсаторы? Поскольку существует множество ошибок PCIe, если вы разбираетесь в оборудовании, вы также можете переустановить все карты PCIe.

[Фактическое тестовое оборудование для подтверждения наличия аппаратного сбоя, вероятно, будет стоить значительно дороже, чем просто замена компьютера.]

1
12.01.2021, 19:06
3 ответа

Вы можете использовать режим patchgit log:

git log -p
# Hit '/' for search mode.
# Type TODO
# Then hit 'n' for next

Для ограничения в вашей ветке вы можете добавитьfirstcommit...HEAD

2
18.03.2021, 22:37

Вы почти угадали. Из официальной документации git -grep:

-h
-H
  By default, the command shows the filename for each match. -h option is used
  to suppress this output. -H is there for completeness and does not do
  anything except it overrides -h given earlier on the command line.

...

-n
--line-number
  Prefix the line number to matching lines.

Это означает, что следующая команда

git grep -n TODO

должен отображать все файлы, содержащие «TODO», вместе с их именем (поведением по умолчанию )и номером строки для соответствия (с-n). Пример вывода:

lib/my_script.py:67:    # TODO patch this
      ^          ^            ^
      |          |            |
  filepath    line number   matched line

Если совпадений слишком много, вы можете использовать :^some_folderдля исключения папки some_folderиз поиска grep (см. параграф «Примеры»):

git grep -n TODO :^some_folder

или команды оболочки конвейера, такие как sedили awk, чтобы отфильтровать вывод только для нужных файлов или папок.

Кроме того, вы можете настроить отображение номеров строк по умолчанию (см. параграф «Конфигурация»):

grep.lineNumber
  If set to true, enable -n option by default.

, который можно установить, как описано в различных ответах на этот вопрос , например, с помощью:

git config --global grep.lineNumber true
0
18.03.2021, 22:37

Я хотел сделать то же самое, что и OP :найти TODO, добавленные в мою ветку.

Итак, я собрал сценарий diff2vimgrep . А затем подключил его к fzf.vim(нечеткому поисковику для vim):

command! -bang -nargs=0 RgDiffMaster call fzf#vim#grep("git diff master... | diff2vimgrep", 0, {}, <bang>0)

И вуаля :demo

1
18.06.2021, 08:51

Теги

Похожие вопросы