Это, вероятно, не, что Вы ищете, но в зависимости от того, какой механизм Вы продолжаете работать, могло бы быть лучше еще использовать механизм, созданный кем-то, как farseer (для C#). Примечание Codeplex снижается для обслуживания.
Попробуйте следующее:
git --work-tree=/path/to/checkout-area checkout-index path/to/file-to-checkout
Параметр - work-tree
сообщает git, чтобы использовать другую область в качестве рабочего дерева, чтобы вы не перезаписывали файл в вашем истинном рабочем дереве. Вы также можете добавить параметр -f
, чтобы указать его на перезапись, если это необходимо, но если ваш сценарий должным образом очищается после себя, в этом нет необходимости. См. Справочную страницу для checkout-index для получения дополнительной информации.
Другое решение для одиночного 1 файла (при условии, что вы не во время конфликтующего слияния или перебазирования):
$ git show :0:path/to/file
(где путь / to / file
относится к верхнему каталогу в репозитории).
Или « git cat-file blob: 0: path / to / file
», который (я думаю) не будет вызывать никаких фильтров (расширение ключевых слов, преобразование конца строки и т. Д.).
См. Раздел о расширенном синтаксисе sha-1 в git-rev-parse справочной странице
1.) Преимущество ответа Джефроми заключается в использовании git checkout-index
вы можете проверить более одного файла; вы можете проверить весь каталог или даже весь проект.