Как искать git историю для исчезнувшей строки?
Мне нужно найти историю определенного файла в репозитории git, чтобы найти строку, которая ушла. Сообщение фиксации не будет иметь соответствующего текста для поиска. Какую команду я использую?
Более подробная информация: это история моего списка todo из нашего незвездного программного обеспечения для отслеживания задач. Я держу его в течение двух лет, потому что в программном обеспечении мне не хватает информации. К сожалению, в моих сообщениях с сообщением есть только идентификаторы задач, и что мне нужно сделать, это найти закрытую задачу по теме, а не по номеру. Да, реальное решение - лучшее программное обеспечение для отслеживания задач, но это полностью из моих рук.
Ответы
Ответ 1
Это работа для кирки!
Из git -log manpage:
-S<string>
Ищите различия, которые вводят или удаляют экземпляр <string>
. Обратите внимание, что это отличается от строки, просто появляющейся на выходе diff; см. запись кирка в gitdiffcore (7) для более подробной информации.
Вы можете, конечно, использовать дополнительные параметры, чтобы сузить его, например:
git log -Sfoobar --since=2008.1.1 --until=2009.1.1 -- path_containing_change
Разве это не очень полезно?
Ответ 2
Как насчет git log --stat | grep 'filename'
начать сужать его?