Найти все текущие строки, измененные автором
Как бы я в 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