2012-07-02 5 views

ответ

2

Я хотел бы предложить один из эти:

# commit + full message + list of changed files 
git log --author="Frank Nord" --stat 

# commit + full message 
git log --author="Frank Nord" 

# just commit + one line message 
git log --author="Frank Nord" --format=short 

Дополнительные параметры --format a nd infos на рисунках, поддерживаемых --author см. git log --help.

Если вам действительно нужны только файлы, вам необходимо сделать некоторые оглавлению:

git log --author="Frank Nord" --stat --format=oneline | grep -Po "(?<=^).*(?=\|)" | grep -Po "[^ ]+(\s*[^ ]+)*" | sort | uniq 

Это дает вам список уникальных путей когда-либо прикасался Франком Nord. Это на самом деле нужно два этапа Grep здесь, Grep иначе error'd с exceeded PCRE's backtracking limit :)

0

вы всегда можете использовать Grep для него:

git log | grep -B 2 -A 3 'Author: Timmy' 

-B num означает количество строк, чтобы показать перед матчем и -A num количество линий после матча

+0

Плохая идея. 'git log' имеет встроенные опции для поиска авторов, и это будет намного эффективнее, чем' grep'ing вывода. – vergenzt

2

Следующая делает то, что вы хотите, я думаю:

git log --diff-filter=A --author='Someone' --name-only --pretty=format: | sort -u 

Обратите внимание, что --diff-filter=A говорит только файлы отчетов, которые были добавлено, а --pretty=format: - только для подавления нормального вывода сообщения фиксации от git log.

Обратите внимание, что это просто показывает добавление файлов в коммиты конкретного автора - в подавляющем большинстве случаев он не будет точно отражать их вклад в проект, например.