Как я могу показать содержимое файла в определенном состоянии репозитория git?
Я хочу показать содержимое файла, заданного по пути в конкретном состоянии репозитория git. Я безуспешно пробовал это:
git show f825334150cd4bc8f46656b2daa8fa1e92f7796d:Katana/source/Git/GitLocalBranch.h
fatal: ambiguous argument
'f825334150cd4bc8f46656b2daa8fa1e92f7796d:Katana/source/Git/GitLocalBranch.h': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Собранный вопрос не изменил указанный файл. Как я могу показать содержимое файла в заданном состоянии (заданное хэшем фиксации) независимо от участия файла в фиксации?
Ответы
Ответ 1
Вероятно, это проблема с вашей спецификацией пути.
Это работает, показывает версию Makefile в commit b1b22df407417...
git show b1b22df407417:Makefile
Или текущая версия в главной ветке
git show master:Makefile
Или текущая версия в ветке эксперимента:
git show exper:Makefile
Или предыдущая версия на ветке эксперимента:
git show exper^:Makefile
И так далее
Ответ 2
Синтаксис, который вы используете, соответствует показанным в примерах для git show
manpage, но git
кажется намеком, что вы должны указать так:
# I _don't_ think this is your answer...
git show f825334150 -- Katana/source/Git/GitLocalBranch.h
который я определенно использовал для git log
и находится в его manpage.
Моя кишка говорит мне, что вы используете абсолютный путь, а не путь в верхней части рабочего дерева git. Вы должны убедиться, что если ваш каталог .git
находится в Katana/source/Git/.git
, то вы отрубаете все до .git
, например:
git show f825334150:GitLocalBranch.h
Если вы пытаетесь показать кадр git вне рабочей области git, вам нужно сделать что-то вроде этого:
GIT_DIR=Katana/source/Git git show f825334150:GitLocalBranch.h
Это сообщит git, где он может найти данные для вашего репозитория.
Нижняя строка: проверьте свои пути и убедитесь, что они правы. Возможно, вам потребуется установить GIT_DIR
, если вы не используете свою команду из рабочей области git.