Найти все текущие строки, измененные автором

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

2 ответа

Решение

Может просто 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"

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
Другие вопросы по тегам