Ответ 1
С этой целью вы можете использовать параметр -S для git log:
git log -S'bar' -- foo.rb
Итак, если у меня есть файл с именем foo.rb, и он дает мне ошибку для отсутствующего метода с именем bar, поэтому я хочу выполнить поиск в истории foo.rb для строки bar
, чтобы узнать, когда-либо было определено в прошлом.
Я нашел этот Поиск всей истории Git для строки?
Но это ищет все файлы. Я просто хочу искать в одном файле.
С этой целью вы можете использовать параметр -S для git log:
git log -S'bar' -- foo.rb
Или, может быть, вы можете попробовать это (из связанных вопросов Искать всю историю git для строки)
git rev-list --all foo.rb | (
while read revision; do
git grep -F 'bar' $revision foo.rb
done
)
На самом деле будет искать содержимое файла, а не фиксировать сообщения/патчи для любого появления бара.
Там переопределение для команды git log (из руководство):
$ git log Makefile # commits that modify Makefile
Итак, вы можете использовать:
git log foo.rb | grep "bar"