Поиск текста по всей ревизии файла - PullRequest
0 голосов
/ 18 января 2019

У меня есть файл, который в какой-то момент содержал текст, который затем был удален.

Я забыл, какой именно коммит и в какой ветке он существовал.

Есть ли способ найти все ревизии файла по всем веткам и найти коммит, где файл содержит определенный текст?

1 Ответ

0 голосов
/ 18 января 2019

Для этого вы можете использовать опцию -S для git log :

git log -S'bar' -- foo.rb

Этот поиск текста bar в файле foo.rb

если вы хотите выполнить поиск по всем различиям, вы можете сделать: git log -G'bar' -- foo.rb

Когда -S или -G найдет изменение, покажите все изменения в этом наборе изменений, а не только файлы, которые содержат это изменение.

ПРИМЕЧАНИЕ : Этот поиск чувствителен к регистру .

Если вы добавите -i, вы можете искать без учета регистра. Выполнение полной команды:

git log -i -S'bar' -- foo.rb

ПРИМЕЧАНИЕ 2 : поиск выполняется только в вашей текущей ветке.

Если вы хотите искать по всей ветке, вам нужно добавить флаг --all

Сделайте вид, что все ссылки в refs / вместе с HEAD перечислены в командной строке как.

Полная команда будет:

git log --all -i -S'bar' -- foo.rb

Вывод будет примерно таким:

$ git log --all -i -S'bar' -- foo.rb

commit 53106e9cd319a2d8f960a3bbf2731acd0699a54f (feature/x)
Author: name <email>
Date:   Fri Jan 18 13:59:32 2019 +0100

    Added word
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...