Git: поиск всех коммитов, ссылающихся на тот или иной файл одновременно? - PullRequest
1 голос
/ 04 октября 2019

Возможно ли выполнить эти 3 действия одновременно с семантикой OR и просмотреть выходные данные со стандартным пейджером (less?)

  1. git log '**/foo.c' (ищитекоммиты обновляют foo.c где-то в репо)
  2. git log -G foo.c (ищите коммиты, в которых diff содержит строку foo.c)
  3. git log --grep foo.c (ищите коммиты, в комментариях которых упоминается строкаfoo.c)

https://git -scm.com / docs / git-log

Спасибо!

1 Ответ

0 голосов
/ 04 октября 2019

Не существует "одной" команды, которая выдала бы комбинированный результат, но вы можете объединить их в цепочку:

  • сеанс bash:

    git log '**/foo.c'; git log -G foo.c; git log --grep foo.c
    
  • сеанс Windows CMD

    git log "**/foo.c"&& git log -G foo.c&& git log --grep foo.c
    

Если по семантике "ИЛИ" вам нужно увидеть только один коммит, я бы рекомендовал добавить --oneline в ваши журналыи перенаправить результат в файл.
Затем вы можете sort|uniq этот файл, чтобы получить общие коммиты один раз.

(git log '**/foo.c'; git log -G foo.c; git log --grep foo.c)>/tmp/f; cat /tmp/f|sort|uniq
...