українська мова ▾ Topics ▾ Latest version ▾ git-ls-tree last updated in 2.42.0

НАЗВА

git-ls-tree - Перерахувати вміст об’єкта дерева

СИНОПСИС

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>

НАЗВИ ПОЛІВ

Різні значення зі структурованих полів можна використовувати для інтерполяції в результуючий вивід. Для кожного рядка виводу можна використовувати такі назви:

objectmode

Режим об’єкта.

тип об’єкта

Тип об’єкта (commit, blob або tree).

назва об’єкта

Назва об’єкта.

objectsize[:м’який]

Розмір об’єкта blob ("-", якщо це commit або tree). Також підтримується доповнений формат розміру з "%(objectsize:padded)".

path

Шлях до об’єкта.

GIT

Частина набору git[1]