Подтвердить что ты не робот

Как я могу показать содержимое файла в определенном состоянии репозитория 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

Собранный вопрос не изменил указанный файл. Как я могу показать содержимое файла в заданном состоянии (заданное хэшем фиксации) независимо от участия файла в фиксации?

4b9b3361

Ответ 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.