[go: up one dir, main page]

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

НАЗВА

git-ls-files - Показати інформацію про файли в індексі та робочому дереві

СИНОПСИС

git ls-files [-z] [-t] [-v] [-f]
		[-c|--cached] [-d|--deleted] [-o|--others] [-i|--ignored]
		[-s|--stage] [-u|--unmerged] [-k|--killed] [-m|--modified]
		[--resolve-undo]
		[--directory [--no-empty-directory]] [--eol]
		[--deduplicate]
		[-x <pattern>|--exclude=<pattern>]
		[-X <file>|--exclude-from=<file>]
		[--exclude-per-directory=<file>]
		[--exclude-standard]
		[--error-unmatch] [--with-tree=<tree-ish>]
		[--full-name] [--recurse-submodules]
		[--abbrev[=<n>]] [--format=<format>] [--] [<file>…​]

ОПИС

Ця команда об’єднує список файлів в індексі з фактичним списком робочих каталогів та показує різні комбінації цих двох.

Для визначення того, які файли відображаються, можна використовувати кілька прапорців, і кожен файл може бути виведений кілька разів, якщо в індексі є кілька записів або якщо для відповідних параметрів вибору файлів застосовується кілька статусів.

ОПЦІЇ

-c
--cached

Показувати всі файли, кешовані в індексі Git, тобто всі відстежувані файли. (Це значення за замовчуванням, якщо не вказано опції -c/-s/-d/-o/-u/-k/-m/--resolve-undo.)

-d
--deleted

Показати файли з непідготовленим видаленням

-m
--modified

Показати файли з непідготовленою модифікацією (зверніть увагу, що непідготовлене видалення також вважається непідготовленою модифікацією)

-o
--others

Показувати інші (тобто невідстежувані) файли у виводі

-i
--ignored

Показувати лише проігноровані файли у виводі. Повинен використовуватися з явним параметром -c або -o. Під час показу файлів в індексі (тобто при використанні з -c) виводити лише ті файли, що відповідають шаблону виключення. Під час показу "інших" файлів (тобто при використанні з -o) показувати лише ті, що відповідають шаблону виключення. Стандартні правила ігнорування не активуються автоматично; тому обов’язковий принаймні один з параметрів --exclude*.

-s
--stage

Показувати біти режиму проміжного вмісту, назву об’єкта та номер проміжку у виводі.

--directory

Якщо весь каталог класифіковано як "інший", відображати лише його назву (з кінцевою косою рискою), а не весь його вміст. Не має ефекту без -o/--others.

--no-empty-directory

Не виводити список порожніх каталогів. Без параметра --directory не має жодного ефекту.

-u
--unmerged

Показувати інформацію про необ’єднані файли у виводі, але не показувати жодних інших відстежуваних файлів (примусово використовувати --stage, перевизначає --cached).

-k
--killed

Показати невідстежувані файли у файловій системі, які потрібно видалити через конфлікти файлів/каталогів, щоб відстежувані файли можна було записати у файлову систему.

--resolve-undo

Показувати файли, що містять інформацію про скасування та вирішення в індексі, разом з інформацією про скасування цих дій. (інформація про скасування та вирішення використовується для реалізації "git checkout -m $PATH", тобто для відтворення конфліктів злиття, які були випадково вирішені)

-z

\0 завершення рядка на виводі та не беріть імена файлів у лапки. Див. ВИВОД нижче для отримання додаткової інформації.

--deduplicate

Коли відображаються лише назви файлів, приховувати дублікати, які можуть виникнути внаслідок наявності кількох етапів під час об’єднання або одночасного використання опцій --deleted та --modified. Коли використовується будь-яка з опцій -t, --unmerged або --stage, ця опція не має жодного ефекту.

-x <pattern>
--exclude=<pattern>

Пропустити невідстежувані файли, що відповідають шаблону. Зверніть увагу, що шаблон – це шаблон підстановки оболонки. Див. ШАБЛОНИ ВИКЛЮЧЕННЯ нижче для отримання додаткової інформації.

-X <file>
--exclude-from=<file>

Зчитати шаблони виключення з <файлу>; 1 на рядок.

--exclude-per-directory=<file>

Ознайомтеся з додатковими шаблонами виключення, які застосовуються лише до каталогу та його підкаталогів у <файлі>. Якщо ви намагаєтеся імітувати роботу команд Porcelain, використання опції --exclude-standard буде простішим та ретельнішим.

--exclude-standard

Додайте стандартні виключення Git: .git/info/exclude, .gitignore у кожному каталозі та глобальний файл виключень користувача.

--error-unmatch

Якщо будь-який <файл> не відображається в індексі, це вважається помилкою (повернення 1).

--with-tree=<tree-ish>

Під час використання --error-unmatch для розширення наданих користувачем аргументів <file> (тобто шаблону шляху) до шляхів, вдавайте, що шляхи, які були видалені з індексу з моменту іменованого <tree-ish>, все ще присутні. Використання цієї опції з опціями -s або -u не має сенсу.

-t

Показувати теги статусу разом з іменами файлів. Зверніть увагу, що для цілей скриптів git-status[1] --porcelain та git-diff-files[1] --name-status майже завжди є кращими альтернативами; користувачам слід звернути увагу на git-status[1] --short або git-diff[1] --name-status для більш зручних альтернатив.

Ця опція вказує причину відображення кожного імені файлу у вигляді тегу стану (за яким йде пробіл, а потім ім’я файлу). Теги стану – це всі окремі символи з наступного списку:

H

відстежуваний файл, який не є ні роз’єднаним, ні пропущеним робочим деревом

S

відстежуваний файл, який є skip-worktree

M

відстежуваний файл, який не об’єднано

R

відстежуваний файл з непідготовленим/видаленням

C

відстежуваний файл із непідготовленою модифікацією/зміною

K

невідстежувані шляхи, що є частиною конфліктів файлів/каталогів, що перешкоджають перевірці відстежуваних файлів

?

untracked file

U

файл з інформацією про вирішення/скасування

-v

Подібно до -t, але використовуйте малі літери для файлів, позначених як «припускати без змін» (див. git-update-index[1]).

-f

Подібно до -t, але використовуйте малі літери для файлів, позначених як «fsmonitor valid» (див. git-update-index[1]).

--full-name

Під час виконання з підкаталогу команда зазвичай виводить шляхи відносно поточного каталогу. Цей параметр примусово виводить шляхи відносно головного каталогу проекту.

--recurse-submodules

Рекурсивно викликає ls-файли для кожного активного підмодуля в репозиторії. Наразі підтримуються лише режими --cached та --stage.

--abbrev[=<n>]

Замість відображення повних 40-байтових шістнадцяткових рядків об’єкта, відображати найкоротший префікс довжиною щонайменше <n> шістнадцяткових цифр, який унікально посилається на об’єкт. Кількість цифр, що не є стандартною, можна вказати за допомогою --abbrev=<n>.

--debug

Після кожного рядка, що описує файл, додайте більше даних про його запис кешу. Це має на меті показати якомога більше інформації для ручної перевірки; точний формат може змінитися будь-коли.

--eol

Показувати файли <eolinfo> та <eolattr>. <eolinfo> – це ідентифікатор вмісту файлу, який використовується Git, коли атрибут "text" має значення "auto" (або не встановлено, а core.autocrlf не має значення false). <eolinfo> має значення "-text", "none", "lf", "crlf", "mixed" або "".

"" означає, що файл не є звичайним файлом, його немає в індексі або він недоступний у робочому дереві.

<eolattr> – це атрибут, який використовується під час отримання або фіксації змін; це або "", "-text", "text", "text=auto", "text eol=lf", "text eol=crlf". Починаючи з Git 2.10, підтримуються "text=auto eol=lf" та "text=auto eol=crlf".

Для звичайних файлів відображається як <eolinfo> в індексі ("i/<eolinfo>"), так і в робочому дереві ("w/<eolinfo>"), а потім ("attr/<eolattr>").

--sparse

Якщо індекс розріджений, відображати розріджені каталоги без розгортання до файлів, що містяться в них. Розріджені каталоги будуть відображатися з кінцевою склесною рискою, наприклад, "x/" для розрідженого каталогу "x".

--format=<format>

Рядок, який інтерполює %(ім'я поля) з відображеного результату. Він також інтерполює %% до %, а %xXX, де XX – шістнадцяткові цифри, інтерполює до символу з шістнадцятковим кодом XX; наприклад, %x00 інтерполює до \0 (NUL), %x09 до \t (TAB) та %x0a до \n (LF). --format не можна поєднувати з -s, -o, -k, -t, --resolve-undo та --eol.

--

Не інтерпретуйте жодних додаткових аргументів як варіанти.

<file>

Файли для відображення. Якщо файли не вказані, відображаються всі файли, що відповідають іншим заданим критеріям.

ВИХІД

git ls-files просто виводить імена файлів, якщо не вказано --stage, у такому разі виводиться:

[<tag> ]<mode> <object> <stage> <file>

git ls-files --eol покаже i/<eolinfo><SPACES>w/<eolinfo><SPACES>attr/<eolattr><SPACE*><TAB><file>

Команди git ls-files --unmerged та git ls-files --stage можна використовувати для перегляду детальної інформації про необ’єднані шляхи.

Для необ’єднаного шляху, замість запису однієї пари режим/SHA-1, індекс записує до трьох таких пар: одну з дерева O на етапі 1, A на етапі 2 та B на етапі 3. Цю інформацію може використовувати користувач (або porcelain), щоб побачити, що зрештою має бути записано на шляху. (див. git-read-tree[1] для отримання додаткової інформації про стан)

Без опції -z шляхи з "незвичайними" символами взяті в лапки, як пояснено для змінної конфігурації core.quotePath (див. git-config[1]). При використанні -z ім’я файлу виводиться дослівно, а рядок завершується байтом NUL.

Можна друкувати у власному форматі, використовуючи опцію --format, яка може інтерполювати різні поля за допомогою нотації %(назва_поля). Наприклад, якщо вас цікавлять лише поля "назва_об’єкта" та "шлях", ви можете виконати команду з певним "--format", наприклад

git ls-files --format='%(objectname) %(path)'

НАЗВИ ПОЛІВ

Спосіб відображення кожного шляху можна налаштувати за допомогою опції --format=<формат>, де інтерполюються %(ім’я поля) у рядку <формат> для різних аспектів запису індексу. Розуміються такі "ім’я поля":

objectmode

Режим файлу, який записується в індексі.

тип об’єкта

Тип об’єкта файлу, який записується в індексі.

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

Ім’я файлу, яке записується в індексі.

objectsize[:м’який]

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

stage

Стадія файлу, яка записана в індексі.

eolinfo:index
eolinfo:worktree

<eolinfo> (див. опис опції --eol) вмісту індексу або робочого дерева для шляху.

eolattr

<eolattr> (див. опис опції --eol), що застосовується до шляху.

path

Шлях до файлу, який записаний в індексі.

ВИКЛЮЧИТИ ШАБЛОНКИ

Команда «git ls-files» може використовувати список «виключних шаблонів» під час перегляду дерева каталогів та пошуку файлів, щоб відображати, коли вказано прапорці --others або --ignored. gitignore[5] визначає формат виключних шаблонів.

Ці шаблони виключення можна вказати з таких місць у такому порядку:

  1. Прапорець командного рядка --exclude=<шаблон> вказує на один шаблон. Шаблони впорядковуються в тому ж порядку, в якому вони відображаються в командному рядку.

  2. Прапорець командного рядка --exclude-from=<файл> вказує на файл, що містить список шаблонів. Шаблони впорядковуються в тому ж порядку, в якому вони з’являються у файлі.

  3. Прапорець командного рядка --exclude-per-directory=<назва> вказує назву файлу в кожному каталозі, який перевіряє git ls-files, зазвичай .gitignore. Файли в глибших каталогах мають пріоритет. Шаблони впорядковуються в тому ж порядку, в якому вони з’являються у файлах.

Шаблон, заданий у командному рядку за допомогою --exclude або прочитаний з файлу, заданого за допомогою --exclude-from, залежить від вершини дерева каталогів. Шаблон, прочитаний з файлу, заданого за допомогою --exclude-per-directory, залежить від каталогу, в якому знаходиться файл шаблону.

Зазвичай, ви маєте змогу використовувати --exclude-standard, якщо хочете, щоб правила виключення застосовувалися так само, як і команди Porcelain. Щоб емулювати те, що визначає --exclude-standard, ви можете надати --exclude-per-directory=.gitignore, а потім вказати:

  1. Файл, вказаний змінною конфігурації core.excludesfile, якщо така існує, або файл $XDG_CONFIG_HOME/git/ignore.

  2. Файл $GIT_DIR/info/exclude.

за допомогою опції --exclude-from=.

ДИВ. ТАКОЖ

GIT

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