При использовании git log
, как я могу фильтровать по пользователю, чтобы я видел только коммиты от этого пользователя?
git
version-control
git-log
markdorison
источник
источник
github
?Ответы:
Это работает для обоих
git log
иgitk
- 2 самых распространенных способа просмотра истории.Вам не нужно использовать полное имя:
будет соответствовать коммиту, сделанному "Джонатаном Смитом"
а также
также будет работать. Кавычки необязательны, если вам не нужны пробелы.
Добавьте,
--all
если вы собираетесь искать по всем веткам, а не только по предкам текущего коммита в вашем репо.Вы также можете легко сопоставить несколько авторов, поскольку регулярное выражение является основным механизмом для этого фильтра. Таким образом, чтобы перечислить коммиты Джонатана или Адама, вы можете сделать это:
Чтобы исключить коммиты определенного автора или группы авторов с использованием регулярных выражений, как отмечено в этом вопросе , вы можете использовать отрицательный прогноз в сочетании с
--perl-regexp
переключателем:В качестве альтернативы, вы можете исключить коммиты, созданные Адамом, используя
bash
и конвейер:Если вы хотите исключить коммиты, совершенные (но не обязательно созданные) Адамом, замените
%an
на%cn
. Подробнее об этом в моем блоге здесь: http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/источник
gitk
, чтобы родительские коммиты были пропущены другими авторами? (Они показаны белыми кружками.) Напротив,git log --graph
не показывает родительские коммиты; он показывает только коммиты данного автора. Я хотел бы увидеть тот же результат вgitk
. (Уже проверил Настройки и Изменить вид - не смог найти ничего полезного.)источник
На github есть и секретный путь ...
Вы можете отфильтровать коммиты по автору в представлении коммитов, добавив param
?author=github_handle
. Например, ссылка https://github.com/dynjs/dynjs/commits/master?author=jingweno показывает список изменений в проекте Dynjs.источник
дает вам справочную страницу журнала git. Найдите «автора» там, нажав /, а затем напечатав «автор», а затем Enter. Введите «n» несколько раз, чтобы перейти к соответствующему разделу, который показывает:
как уже предлагалось.
Обратите внимание, что это даст вам автора коммитов, но в Git автором может быть кто-то, отличный от коммиттера (например, в ядре Linux, если вы отправляете патч как обычный пользователь, он может быть зафиксирован другим администратором .) Видите разницу между автором и коммиттером в Git? Больше подробностей)
Большую часть времени пользователь и коммиттер, и автор называют пользователя.
источник
Чтобы получить более подробную информацию - (здесь
%an
относится к автору)Использовать этот :-
источник
%ae
вместо их адреса электронной почты использовался формат%an
(который дал имя.)--author
на самом деле поиск по имени автора, а не имени коммиттера. Я бы поменял"username"
на автораЭто дает ваши коммиты в текстовом формате.
источник
cat |
?Если вы хотите отфильтровать свои коммиты:
источник
Вы даже можете немного сократить это, просто используя часть имени пользователя:
источник
попробуйте этот инструмент https://github.com/kamranahmedse/git-standup
Применение
Ниже приведено описание для каждого из флагов
источник
Так как другой вопрос (возможно, ошибочно?) Заблокирован, я просто добавлю это здесь:
показать авторов с их количеством коммитов:
найти все коммиты для конкретного ИМЯ ПОЛЬЗОВАТЕЛЯ:
источник
Покажите количество логов для пользователя x в цвете, добавив этот небольшой фрагмент в файл .bashrc.
Чтобы показать последние 10 коммитов Фрэнка:
l 10 frank
Чтобы показать последние 20 коммитов кем-либо:
l 20
источник
Если вы используете GitHub:
это покажет список в формате ниже
источник
Вы можете использовать либо =, либо "пробел". Например, следующие две команды возвращают одинаковые
источник
Мой случай: я использую дерево исходников, я выполнил следующие шаги:
CRL+3
источник
Хотя есть много полезных ответов. Принимая во внимание, просто чтобы добавить еще один способ. Вы также можете использовать
Он покажет вывод в сгруппированном виде:
Здесь всего 5 коммитов выполняются в
<Author Name>
рамках текущей ветки. Принимая во внимание, что вы также можете использовать--all
для принудительного поиска везде (все ветви) в хранилище git.Один улов: git внутренне пытается сопоставить вход
<author name>
с именем и адресом электронной почты автора в базе данных git. Это чувствительно к регистру .источник