Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.42.1 → 2.54.0 no changes
-
2.42.0
2023-08-21
- 2.36.1 → 2.41.3 no changes
-
2.36.0
2022-04-18
- 2.30.1 → 2.35.8 no changes
-
2.30.0
2020-12-27
- 2.22.1 → 2.29.3 no changes
-
2.22.0
2019-06-07
- 2.14.6 → 2.21.4 no changes
-
2.13.7
2018-05-22
- 2.10.5 → 2.12.5 no changes
-
2.9.5
2017-07-30
- 2.1.4 → 2.8.6 no changes
-
2.0.5
2014-12-17
ОБЗОР
git ls-tree [-d] [-r] [-t] [-l] [-z] [--name-only] [--name-status] [--object-only] [--full-name] [--full-tree] [--abbrev[=<n>]] [--format=<формат>] <указатель-дерева> [<путь>…]
ОПИСАНИЕ
Выводит содержимое заданного объекта-дерева, подобно тому, как "/bin/ls -a" делает в текущем рабочем каталоге. Обратите внимание, что:
-
поведение немного отличается от поведения "/bin/ls" тем, что <путь> обозначает просто список шаблонов для сопоставления, например, указание имени каталога (без
-r) будет вести себя иначе, а порядок аргументов не имеет значения. -
поведение похоже на поведение "/bin/ls" в том, что <путь> рассматривается как относительный к текущему рабочему каталогу. Например, когда вы находитесь в каталоге sub, в котором есть каталог dir, вы можете выполнить git ls-tree -r HEAD dir, чтобы вывести содержимое дерева (то есть
sub/dirвHEAD). В этом случае вы не хотите указывать дерево, которое не находится на корневом уровне (например,gitls-tree-rHEAD:subdir), так как это приведёт к запросуsub/sub/dirв коммитеHEAD. Однако текущий рабочий каталог можно игнорировать, передав параметр --full-tree.
ПАРАМЕТРЫ
- <указатель-дерева>
-
Идентификатор указателя-дерева.
- -d
-
Показать только саму именованную запись дерева, а не её дочерние элементы.
- -r
-
Рекурсивно обходить поддеревья.
- -t
-
Показывать записи дерева, даже если они будут рекурсивно обработаны. Не имеет эффекта, если
-rне был передан.-dподразумевает-t. - -l
- --long
-
Показать размер объекта для записей blob-объектов (файлов).
- -z
-
Завершение строк символом \0 в выводе и не заключать имена файлов в кавычки. Дополнительную информацию см. в разделе ФОРМАТ ВЫВОДА ниже.
- --name-only
- --name-status
-
Выводить только имена файлов (вместо «длинного» вывода), по одному в строке. Не может использоваться вместе с
--object-only. - --object-only
-
Выводить только имена объектов, по одному в строке. Не может использоваться вместе с
--name-onlyили--name-status. Это эквивалентно указанию--format='%(objectname), но для этого параметра и этого точного формата команда использует ручную оптимизацию, а не проходит через общий механизм форматирования. - --abbrev[=<n>]
-
Вместо отображения полных 40-байтовых шестнадцатеричных строк объектов, показывать кратчайший префикс длиной не менее <n> шестнадцатеричных цифр, который однозначно идентифицирует объект. Некоторое количество цифр, отличное от стандартного, можно указать с помощью --abbrev=<n>.
- --full-name
-
Вместо отображения имён путей относительно текущего рабочего каталога, показывать полные имена путей.
- --full-tree
-
Не ограничивать список текущим рабочим каталогом. Подразумевает --full-name.
- --format=<формат>
-
Строка, которая интерполирует %(имя-поля) из отображаемого результата. Она также интерполирует
%%в%и%xNN, гдеNN— шестнадцатеричные цифры, интерполирует в символ с шестнадцатеричным кодомNN; например,%x00интерполирует в \0 (NUL),%x09в \t (TAB), а%x0aв \n (LF). При указании--formatне может использоваться вместе с другими параметрами, изменяющими формат, включая--long,--name-onlyи--object-only. - [<path>…]
-
Когда указаны пути, показать их (обратите внимание, что это не сами имена путей, а список шаблонов для сопоставления). В противном случае неявно использует корневой уровень дерева в качестве единственного аргумента пути.
Формат вывода
Формат вывода ls-tree определяется либо параметром --format, либо другими параметрами, изменяющими формат, такими как --name-only и т.д. (см. --format выше).
Использование определённых директив --format эквивалентно использованию этих параметров, но вызов полного механизма форматирования может быть медленнее, чем использование соответствующего параметра форматирования.
В случаях, когда --format точно соответствует существующему параметру, ls-tree будет использовать соответствующий более быстрый путь. Таким образом, формат по умолчанию эквивалентен:
%(objectmode) %(objecttype) %(objectname)%x09%(path)
Этот формат вывода совместим с тем, что ожидает --index-info --stdin от git update-index.
При использовании параметра -l формат меняется на
%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)
Размер объекта, идентифицируемый <objectname>, указывается в байтах и выравнивается по правому краю с минимальной шириной 7 символов. Размер объекта указывается только для записей blob-объектов (файлов); для других записей вместо размера используется символ -.
Без параметра -z пути с «необычными» символами берутся в кавычки, как это описано для переменной конфигурации core.quotePath (см. git-config[1]). С параметром -z имя файла выводится без изменений, а строка завершается байтом NUL.
Пользовательский формат:
Можно печатать в пользовательском формате, используя параметр --format, который может интерполировать различные поля с помощью обозначения %(имя-поля). Например, если вас интересуют только поля "objectname" и "path", вы можете выполнить команду с определённым "--format", например
git ls-tree --format='%(objectname) %(path)' <указатель-дерева>
ИМЕНА ПОЛЕЙ
Различные значения из структурированных полей могут использоваться для интерполяции в результирующий вывод. Для каждой выводимой строки можно использовать следующие имена:
GIT
Является частью пакета git[1]