Я хочу показать содержание файла, данного путем в определенном состоянии мерзавца repo. Я неудачно попробовал это:
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
Рассматриваемая фиксация не изменила указанный файл. Как я могу показать содержание файла в данном состоянии (указанный хешем фиксации) независимо от участия файла в фиксации?
Используемый синтаксис совпадает с показанным в примерах справочной страницы git show
, но git
похоже, намекает, что вы должны указать это так:
# I _don't_ think this is your answer...
git show f825334150 -- Katana/source/Git/GitLocalBranch.h
, который я определенно использовал для git log
и находится на его странице руководства.
Моя интуиция, подсказывает мне, что вы используете абсолютный путь, а не путь внутри вершины вашего рабочего дерева git. Вам нужно убедиться, что если ваш каталог .git
находится в Katana / source / Git / .git
, то вы отрубите все до .git
, вот так:
git show f825334150:GitLocalBranch.h
Если вы пытаетесь показать git blob из вне рабочей области git, вам нужно сделать что-то вроде этого:
GIT_DIR=Katana/source/Git git show f825334150:GitLocalBranch.h
Это скажет git, где он может найти данные для вашего репозитория.
Итог: перепроверьте свои пути и убедитесь, что они верны. Вам может потребоваться установить GIT_DIR
, если вы не запускаете свою команду из рабочей области git.
Возможно, проблема в спецификации пути.
Это работает, показывает версию Makefile в коммите b1b22df407417...
git show b1b22df407417:Makefile
Или текущая версия в ветке master
git show master:Makefile
Или текущая версия в ветке exper:
git show exper:Makefile
Или предыдущая версия в ветке exper:
git show exper^:Makefile
И так далее