Как я могу показать содержимое файла в определенном состоянии git-репо? - PullRequest
26 голосов
/ 23 марта 2010

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

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

Ответы [ 2 ]

31 голосов
/ 23 марта 2010

Возможно, это проблема с указанием пути.

Это работает, показывает версию Makefile в коммите b1b22df407417...

git show b1b22df407417:Makefile

Или текущая версия в основной ветке

git show master:Makefile

Или текущая версия в ветке Exper:

git show exper:Makefile

Или предыдущая версия на ветке Exper:

git show exper^:Makefile

и т. Д.

5 голосов
/ 23 марта 2010

Синтаксис, который вы используете, соответствует приведенному в примерах для справочной страницы git show, но git, похоже, намекает на то, что вы должны указать вот так:

# I _don't_ think this is your answer...
git show f825334150 -- Katana/source/Git/GitLocalBranch.h

, который яопределенно используется для git log и находится на его man-странице.

Но мой инстинкт говорит мне, что вы используете абсолютный путь, а не путь внутри вершины вашего рабочего дерева git.Вы должны убедиться, что если ваш каталог .git находится в Katana/source/Git/.git, то вы отсекаете все до .git, например:

git show f825334150:GitLocalBranch.h

Если вы пытаетесь показать gitblob из вне рабочей области git, вам нужно сделать что-то вроде этого:

GIT_DIR=Katana/source/Git git show f825334150:GitLocalBranch.h

Это скажет git, где он может найти данные для вашего хранилища.

Итог: перепроверьте ваши пути и убедитесь, что они верны.Возможно, вам придется установить GIT_DIR, если вы не запускаете команду из рабочей области git.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...