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.51.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=<format>] <tree-ish> [<path>…]
ОПИС
Виводить вміст заданого об’єкта дерева, подібно до того, що робить "/bin/ls -a" у поточному робочому каталозі. Зверніть увагу, що:
-
Поведінка дещо відрізняється від поведінки "/bin/ls" тим, що <шлях> позначає лише список шаблонів для збігу, наприклад, вказівка назви каталогу (без
-r
) діятиме інакше, а порядок аргументів не має значення. -
Поведінка подібна до поведінки "/bin/ls" тим, що <шлях> сприймається як відносний до поточного робочого каталогу. Наприклад, коли ви знаходитесь у каталозі sub, який має каталог dir, ви можете виконати git ls-tree -r HEAD dir, щоб переглянути вміст дерева (тобто
sub/dir
уHEAD
). У цьому випадку ви не хочете вказувати дерево, яке не знаходиться на кореневому рівні (наприклад,git
ls-tree
-r
HEAD:sub
dir
), оскільки це призведе до запитуsub/sub/dir
у комітіHEAD
. Однак, поточний робочий каталог можна ігнорувати, передавши опцію --full-tree.
ОПЦІЇ
- <tree-ish>
-
Ідентифікатор дерева.
- -d
-
Показувати лише сам запис дерева з іменем, а не його дочірні елементи.
- -r
-
Рекурсія в піддерева.
- -t
-
Показувати записи дерева навіть під час їх рекурсії. Не має ефекту, якщо не було передано
-r
.-d
означає-t
. - -l
- --long
-
Показати розмір об’єкта записів BLOB-об’єктів (файлів).
- -z
-
\0 завершення рядка на виводі та не беріть імена файлів у лапки. Див. ФОРМАТ ВИВОДУ нижче для отримання додаткової інформації.
- --name-only
- --name-status
-
Виводити лише назви файлів (замість "довгого" виводу), по одному на рядок. Не можна поєднувати з
--object-only
. - --object-only
-
Перелічуйте лише назви об’єктів, по одній на рядок. Не можна поєднувати з
--name-only
або--name-status
. Це еквівалентно вказівці --format='%(назваоб'єкта)', але як для цього параметра, так і для цього точного формату команда використовує оптимізований вручну кодовий шлях замість використання загального механізму форматування. - --abbrev[=<n>]
-
Замість відображення повних 40-байтових шістнадцяткових рядків об’єкта, відображати найкоротший префікс довжиною щонайменше <n> шістнадцяткових цифр, який унікально посилається на об’єкт. Кількість цифр, що не є стандартною, можна вказати за допомогою --abbrev=<n>.
- --full-name
-
Замість відображення шляхів відносно поточного робочого каталогу, відображайте повні шляхи.
- --full-tree
-
Не обмежуйте список поточним робочим каталогом. Має на увазі --full-name.
- --format=<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 символів. Розмір об’єкта вказано лише для записів блобів (файлів); для інших записів замість розміру використовується символ -
.
Без опції -z
шляхи з "незвичайними" символами взяті в лапки, як пояснено для змінної конфігурації core.quotePath
(див. git-config[1]). При використанні -z
ім’я файлу виводиться дослівно, а рядок завершується байтом NUL.
Індивідуальний формат:
Можна друкувати у власному форматі, використовуючи опцію --format
, яка може інтерполювати різні поля за допомогою нотації %(назва_поля). Наприклад, якщо вас цікавлять лише поля "назва_об’єкта" та "шлях", ви можете виконати команду з певним "--format", наприклад
git ls-tree --format='%(objectname) %(path)' <tree-ish>
НАЗВИ ПОЛІВ
Різні значення зі структурованих полів можна використовувати для інтерполяції в результуючий вивід. Для кожного рядка виводу можна використовувати такі назви:
GIT
Частина набору git[1]