Как мне искать в истории git исчезнувшую строку? - PullRequest
43 голосов
/ 23 апреля 2010

Мне нужно найти историю определенного файла в репозитории git, чтобы найти пропавшую строку.В сообщении фиксации не будет релевантного текста для поиска.Какую команду я использую?

Дополнительные сведения: это история моего списка задач из нашего не-звездного программного обеспечения для отслеживания задач.Я хранил его два года, потому что в программном обеспечении для меня недостаточно информации.Мои сообщения коммитов, к сожалению, обычно имеют только идентификаторы задач, и мне нужно найти закрытое задание по теме, а не по номеру.Да, реальное решение - лучшее программное обеспечение для отслеживания задач, но это полностью не в моих руках.

Ответы [ 2 ]

83 голосов
/ 23 апреля 2010

Это работа для кирки!

Из справочной страницы git-log:

-S<string>

Ищите различия, которые вводят или удаляют экземпляр <string>. Обратите внимание, что это отличается от строки, просто появляющейся в выводе diff; см. запись кирки в gitdiffcore (7) для более подробной информации.

Конечно, вы можете использовать дополнительные параметры, чтобы сузить его, например:

git log -Sfoobar --since=2008.1.1 --until=2009.1.1 -- path_containing_change

Разве это не очень полезно?

0 голосов
/ 23 апреля 2010

Как насчет git log --stat | grep 'filename', чтобы начать сужать его?

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