Есть ли команда в git для просмотра (либо сбрасывается в stdout, либо в $PAGER
или $EDITOR
) конкретную версию конкретного файла?
Есть ли команда в git для просмотра (либо сбрасывается в stdout, либо в $PAGER
или $EDITOR
) конкретную версию конкретного файла?
Вы можете использовать git show
:
$ git show REVISION:path/to/file
Например, чтобы просмотреть версию файла src/main.c
от 4 комм. назад, используйте:
$ git show HEAD~4:src/main.c
Обратите внимание, что путь находится из корня репозитория, если только он не начинается с ./ или ../, чтобы указать относительный путь. Дополнительную информацию см. На странице руководства для git-show
,
Выполнение этого по дате выглядит следующим образом:
git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt
Обратите внимание, что HEAD@{2013-02-25}
означает «где HEAD находился в 2013-02-25» в этом хранилище (используя reflog ), а не «последняя фиксация до 2013-02-25 в этой ветке в истории».
Если вам нравятся графические интерфейсы, вы можете использовать gitk:
начать gitk с:
gitk /path/to/file
Выберите ревизию в верхней части экрана, например. по описанию или дате. По умолчанию в нижней части экрана отображается разность для этой ревизии (соответствующая переключателю «patch»).
Чтобы просмотреть файл для выбранной версии:
Вы также можете указать commit hash
(часто также называемые commit ID
) с git show
команда ,
git show <commitHash>:/path/to/file
git log /path/to/file
commit hash
такие как commit 06c98...
(06c98 ... являющийся фиксацией фиксации) commit hash
git show <commitHash>:/path/to/file
используя commit hash
шага 3 и path/to/file
шага 1. Заметка: добавив ./
при определении относительного пути представляется важным, т.е. git show b2f8be577166577c59b55e11cfff1404baf63a84:./flight-simulation/src/main/components/nav-horiz.html
,
В дополнении к Джим Хунцикер ответ,
вы можете экспортировать файл из ревизии как,
git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt > old_fileInCurrentDirectory.txt
Надеюсь это поможет :)
git log -p
покажет вам не только журналы фиксации, но и разницу между каждой фиксацией (кроме коммитов). Затем вы можете нажать /
, введите имя файла и нажмите enter
, Нажмите n
или p
чтобы перейти к следующему / предыдущему. Таким образом, вы не просто увидите изменения в файле, но также информацию о фиксации.
You can use a script like this to dump all the versions of a file to separate files:
e.g.
git_dump_all_versions_of_a_file.sh path/to/somefile.txt
Get the script here as an answer to another similar question