В файлах git нет собственной истории. Проект в целом имеет историю. Таким образом, единственное, что вы можете попросить, это части истории, относящиеся к файлу, или, точнее, (поскольку не существует специальной концепции идентификации файла) к пути. Все команды показа истории принимают ограничитель пути. Как:
$ git log -- file
$ gitk HEAD -- file
--
отделяет ревизии от путей. Вы можете опустить его в большинстве случаев, но может понадобиться, если имя также является допустимым именем ревизии или если файл не существует в текущей версии.
Вы также можете указать имя каталога, в этом случае будет показана история всех файлов в этом поддереве.
Поскольку это ограничение по path , если файл был переименован, он не будет следовать. В конце концов, git не хранит никакой явной информации о переименованиях. Однако он может угадать переименования, и вы можете попросить log
попытаться выполнить переименование с помощью --follow
, например:
$ git log --follow -- file
Это работает только для одного файла, а не для каталога.
Другая опция ищет изменения, которые содержат определенный текст, что часто проще, если вы ищите, когда появляется какой-то код. Используйте опцию -S
, чтобы войти как:
$ git log -Stext