2015-08-31 3 views
7

Как бы я мог определить все строки, которые существуют у конкретного автора. Скажем, например, Тони работал над моим проектом, и я хотел найти все строки в моей ветке разработки, которая все еще существует, и была связана с фиксацией, которую написал Тони?Найти все текущие строки, измененные автором

+0

Что делает то, что вы хотите отличаться от какой 'мерзавца вины 'обеспечивает? – wnoise

+1

@wnoise Я ищу способ существенно поискать git-вину для всех файлов и просто grep только вывод для конкретного автора. – stevebot

ответ

7

Возможно, только git blame FILE | grep "Some Name".

Или, если вы хотите, чтобы рекурсивно вините + поиск через несколько файлов:

for file in $(git ls-files); do git blame $file | grep "Some Name"; done 

Или, если вы ищете какой-то иной выход, чем то, что вы получите от выше, пожалуйста, рассмотреть вопрос об обновлении вопроса будет более подробно о выходе, который вы хотите.

Примечание: Я изначально предложил использовать подход ниже, но проблема, с которой вы можете столкнуться, заключается в том, что он также может найти файлы в вашем рабочем каталоге, которые на самом деле не отслеживаются git, и поэтому git blame будет сбой для этих файлов и разрыв цикла.

find . -type f -name "*.foo" | xargs git blame | grep "Some Name" 
7

sideshowbarker в основном правильно, но фиксированная вторая команда:

find . -type f -exec git blame {} \; | grep "Some Name" 

Хотя я предпочел бы сделать:

for FILE in $(git ls-files) ; do git blame $FILE | grep "Some Name" ; done | less 
Смежные вопросы