Как уже упоминалось в git-show man page, это описано в gitrevisions.
<rev>:<path>, e.g. HEAD:README, :README, master:./README
Суффикс: следуют пути имен блоб или дерева на данном пути в дерева иш объекта, названного в части перед двоеточием. : путь (с пустой частью перед двоеточием) является специальным случаем описанного ниже синтаксиса: содержимое , записанное в индекс по заданному пути. Путь, начинающийся с ./ или ../, равен относительно текущего рабочего каталога. Данный путь будет преобразован в относительно корневого каталога рабочего дерева. Это наиболее полезно для адресует blob или дерево из фиксации или дерева, которое имеет ту же структуру дерева как рабочее дерево.
Это довольно непонятно. Это способ устранить неоднозначность между запросом на просмотр версии и попросить показать файл.
revision:filename
покажет вам имя файла при конкретной ревизии.
:filename
без пересмотра покажет вам файл, как он отображается в промежуточной области (он же «индекс»).
Это будет работать с командами, которые могут содержать как ревизию, так и путь к файлу. git-show
- единственный, о котором я могу думать.
'git rev-parse' может взять ревизию или путь, например' git rev-parse branch', 'git rev-parse branch:', 'git rev-parse branch: path',' git rev-parse: path 'и т. д. Поэтому git cat-file -p' и 'git cat-file -t' могут также сделать это. (Может быть еще несколько, но никто не приходит в голову.) – torek