Глиф Учебники

Как посмотреть историю файла

Справочник · Git · 2 минуты чтения

Список коммитов, которые меняли файл:

Терминал
$ git log --oneline -- README.md
3e677f8 (HEAD -> main) Добавлен первый пункт
5e634b3 Первый коммит: список дел

Те же коммиты вместе с правками в файле:

Bash
git log -p -- README.md

Два дефиса -- отделяют имя файла от остальных параметров. Без них команда обычно тоже работает, но с ними Git не спутает файл с именем ветки, и так можно смотреть историю уже удалённого файла.

Файл переименовывали

Обычный git log останавливается на коммите, где файл получил текущее имя. Чтобы видеть историю и под прежними именами:

Bash
git log --oneline --follow -- todo.txt

--follow работает только с одним файлом.

Кто и когда изменил каждую строку

Терминал
$ git blame todo.txt
^d31c670 notes.txt (Ivan Petrov 2026-11-05 10:12:03 +0300 1) # Список дел
27ca4282 notes.txt (Ivan Petrov 2026-11-05 10:15:42 +0300 2) - купить хлеб

Слева — коммит, в котором строка появилась или изменилась последний раз, затем имя файла в том коммите (если его переименовывали), автор, дата и номер строки. Знак ^ у хеша — пометка самого первого коммита. Только нужные строки — git blame -L 10,20 файл.

Слово blame переводится как «обвинять», но смысл команды — найти, к какому коммиту и задаче относится строка, чтобы понять, зачем её так написали.

Как файл выглядел раньше

Показать файл целиком в версии из определённого коммита, ничего не меняя в рабочей папке:

Bash
git show 5e634b3:README.md

Путь после двоеточия — от корня репозитория. Вывод можно сохранить в отдельный файл: git show 5e634b3:README.md > old-readme.md. Вернуть файл к этой версии — в справке Как откатить файл к прошлой версии.

Что изменилось в файле между двумя коммитами:

Bash
git diff 5e634b3 3e677f8 -- README.md

Найти коммит, где появился текст

Bash
git log -S "купить хлеб" --oneline

-S находит коммиты, в которых число вхождений этого текста изменилось, — то есть где его добавили или удалили. Удобно, когда нужно узнать, когда появилась функция или строка настройки.

В редакторе и на сайте

Visual Studio Code показывает историю файла на панели «Timeline» (Временная шкала), а GitHub и GitLab — на странице файла: кнопки истории (History) и Blame. Это те же данные, что дают команды выше.

Подводные камни