См. Справочную страницу для git-log
и gitdiffcore
.Я полагаю, что эта команда сделает это, но она может быть не совсем правильной:
git log -G "var identifier =" file.js
РЕДАКТИРОВАТЬ: Вот грубый старт для сценария bash, чтобы показать действительные строки.Это может быть больше, чем вы ищете.
for c in $(git log -G "something" --format=%H -- file.js); do
git --no-pager grep -e "something" $c -- file.js
done
Он использует git log -G
, чтобы найти интересные коммиты, используя --format=%H
, чтобы создать список хэшей коммитов.Затем он перебирает каждый интересный коммит, запрашивая git grep
показать строки из этого коммита и файл, содержащий регулярное выражение, с предваряющим хэшем коммита.
РЕДАКТИРОВАТЬ: Измененоиспользовать -G
вместо -S
, как предлагается в комментариях.