Эквивалентность: git log --exclude-author?
На работе у нас есть репозиторий git, где большинство всех коммитов являются автоматическими фиксациями пользователя бота. Бывают случаи, когда я предпочитаю просматривать журнал git из этого репо, но не видя автоматических коммитов. Я предполагаю, что это можно было бы описать как инвертированный "git log -author" или "git log -exclude-author = botuser", если бы такой параметр существовал.
В настоящее время я делаю следующее, скроллированное с псевдонимом bash.
git log --format="%H %aE" | grep -v -F [email protected] | while read hash email; do git log -1 $hash; echo; done | less
Мой вопрос в том, есть ли менее хакерское решение для того, что я хочу выполнить?
Ответы
Ответ 1
Из https://coderwall.com/p/tzdzwa:
git log --perl-regexp --author='^((?!excluded-author-regex).*)$'
Это сработало для меня.
Если вы не хотите указывать --perl-regexp
каждый раз, когда вы можете сделать:
git config --global grep.patternType perl
Ответ 2
В настоящее время, хотя похоже, было некоторое обсуждение о поддержке опции -v
в будущем или создании текущей git log --not
работает для --author
, --committer
и --grep
.
См. также: Как инвертировать шаблон git log --grep
.
Ответ 3
Некоторые другие ответы ссылаются на части этого, но я имел успех в своем репо, используя тактику, которую я видел здесь
git log --invert-grep --author=<pattern>
Вы можете добавить столько шаблонов авторов, сколько необходимо. В моем случае лучшим образцом была полная электронная почта, поскольку она, как известно, является уникальной
Ответ 4
Да, это возможно. Вам нужно изменить свой файл .gitconfig
в нужном вам формате. Ознакомьтесь с разделом "Pretty format" в git log странице руководства.
Еще одна ссылка: раздел "Пользовательский формат" в здесь.