GitHub: поиск по старым версиям файлов - PullRequest
92 голосов
/ 16 января 2011

Я знаю, что с помощью GitHub я могу искать во всех текущих версиях моих файлов в репо.Тем не менее, я также хотел бы поискать более старые версии моих файлов репо.Например, скажем, у меня в коде была функция get_info (), но я удалил ее несколько версий назад, можно ли найти get_info и найти код.Если это невозможно с помощью GitHub, возможно ли это из командной строки git?

EDIT

Спасибо @Mark Longair за показ того, как это можно сделать изкомандная строка git.Если это невозможно в GitHub, было бы неплохо иметь такую ​​возможность.

1 Ответ

106 голосов
/ 16 января 2011

В настоящее время я не верю, что можно искать в полной истории кода репозитория на веб-сайте github - самый близкий - это просто поиск в текущем коде репозитория с опцией «поиск кода» на эта страница .

Однако из командной строки вы можете найти любые коммиты, в которых были введены или удалены строки, содержащие get_info с параметром -S для git log. e.g.:

git log -Sget_info -p

(нет. Между -S и поисковым термином не должно быть пробела)

(также примечание: для поиска более одного слова, окружите '):

git log -S'get info' -p

Итак, как минимум, должен найти коммит, в котором функция была впервые представлена ​​и та, которая ее удалила. Я добавил -p, чтобы вы также могли видеть патчи - если много коммитов вносили изменения, в которых упоминалась функция, которая может быть полезна. Если функция была только в другой ветке, было бы также полезно использовать --all для поиска во всех ветвях.

Jefromi указывает в комментарии ниже, что git 1.7.4 представит опцию -G в качестве альтернативы - это изменение обобщено в недавнем сообщении в блоге от Junio ​​Hamano (сопровождающий git): http://gitster.livejournal.com/48191.html

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