Список коммитов, сделанных другими (т.е. не мной)? - PullRequest
5 голосов
/ 10 августа 2010

Есть ли стандартный способ перечислить все коммиты, сделанные другими (т.е. не мной) в репозитории git?

Я пробовал git log --not --author=username, но, похоже, --not относится только к ревизиям. Похоже, что справочная страница для git log не предлагает способ инвертировать предикаты, такие как --author.

(я использую git-svn на работе и хочу узнать, что изменили мои коллеги с тех пор, как я в последний раз набрал git svn rebase, или, в более общем смысле, за последние X дней. Обычно я знаю, что я изменил, я просто хочу посмотреть, какие файлы были затронуты другими / прочитать их сообщения в журнале коммитов / возможно просмотреть интересные патчи / и т.д.)

Редактировать: Уточненная область, на самом деле меня больше интересует "недавно", чем "со времени последнего git svn rebase".

Ответы [ 2 ]

5 голосов
/ 10 августа 2010

Это ненастоящее решение, но за то, что оно того стоит, вы можете что-то запутать, используя тот факт, что --author использует совпадение с регулярным выражением.Если бы ваше имя было, скажем, Джефроми:

git log --author='^[^J]\|J[^e]\|Je[^f]' # and so on

Это довольно глупо, но может быть достаточно для ваших целей.(И короче, если имя другого человека не начинается с тех же букв, что и у вас.)

Что касается недавнего времени, кроме использования веток для сужения диапазона (start..end, ^stop1 ^stop2 branch и т. Д.), Вы можетепросто используйте опцию --since=<date>.

2 голосов
/ 30 сентября 2016
git log --perl-regexp --author='^(?!RobM)'

Объяснение: привяжите регулярное выражение к началу строки с помощью ^;затем используйте упреждающий просмотр (?!whatever), чтобы запретить ваше имя после этой позиции.Таким образом, вы даже можете исключить коммиты нескольких авторов:

git log --perl-regexp --author='^(?!jack|jill)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...