2016-04-13 3 views

ответ

2

Как уже упоминалось в git-show man page, это описано в gitrevisions.

<rev>:<path>, e.g. HEAD:README, :README, master:./README

Суффикс: следуют пути имен блоб или дерева на данном пути в дерева иш объекта, названного в части перед двоеточием. : путь (с пустой частью перед двоеточием) является специальным случаем описанного ниже синтаксиса: содержимое , записанное в индекс по заданному пути. Путь, начинающийся с ./ или ../, равен относительно текущего рабочего каталога. Данный путь будет преобразован в относительно корневого каталога рабочего дерева. Это наиболее полезно для адресует blob или дерево из фиксации или дерева, которое имеет ту же структуру дерева как рабочее дерево.

Это довольно непонятно. Это способ устранить неоднозначность между запросом на просмотр версии и попросить показать файл.

revision:filename покажет вам имя файла при конкретной ревизии.

:filename без пересмотра покажет вам файл, как он отображается в промежуточной области (он же «индекс»).

Это будет работать с командами, которые могут содержать как ревизию, так и путь к файлу. git-show - единственный, о котором я могу думать.

+2

'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

2

В этом контексте : означает отображение полного содержимого файла при конкретном фиксации, а промежуточная область подразумевается, если не указан другой хеш-хеш.

Например, если у вас был другой хеш fafefefa1313, вы можете сделать следующее, чтобы показать, как выглядел файл в этой фиксации.

git show fafefefa1313:filename 
+1

Это не ГОЛОВА, которая подразумевается, а область постановки. Если 'filename' изменен и добавлен,' git show: filename' покажет измененную версию. – Schwern

+1

@Schwern, Упс, спасибо за исправление. – merlin2011

Смежные вопросы