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.46.2 → 2.51.0 no changes
-
2.46.1
2024-09-13
- 2.44.1 → 2.46.0 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 no changes
-
2.42.0
2023-08-21
- 2.40.1 → 2.41.3 no changes
-
2.40.0
2023-03-12
- 2.39.1 → 2.39.5 no changes
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 no changes
-
2.38.0
2022-10-02
- 2.36.1 → 2.37.7 no changes
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.31.1 → 2.34.8 no changes
-
2.31.0
2021-03-15
- 2.30.2 → 2.30.9 no changes
-
2.30.1
2021-02-08
-
2.30.0
2020-12-27
- 2.27.1 → 2.29.3 no changes
-
2.27.0
2020-06-01
- 2.22.1 → 2.26.3 no changes
-
2.22.0
2019-06-07
- 2.18.1 → 2.21.4 no changes
-
2.18.0
2018-06-21
- 2.17.0 → 2.17.6 no changes
-
2.16.6
2019-12-06
- 2.14.6 → 2.15.4 no changes
-
2.13.7
2018-05-22
- 2.12.5 no changes
-
2.11.4
2017-09-22
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
- 2.2.3 → 2.7.6 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
СИНОПСИС
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] визначає формат виключних шаблонів.
Ці шаблони виключення можна вказати з таких місць у такому порядку:
-
Прапорець командного рядка --exclude=<шаблон> вказує на один шаблон. Шаблони впорядковуються в тому ж порядку, в якому вони відображаються в командному рядку.
-
Прапорець командного рядка --exclude-from=<файл> вказує на файл, що містить список шаблонів. Шаблони впорядковуються в тому ж порядку, в якому вони з’являються у файлі.
-
Прапорець командного рядка --exclude-per-directory=<назва> вказує назву файлу в кожному каталозі, який перевіряє git ls-files, зазвичай
.gitignore
. Файли в глибших каталогах мають пріоритет. Шаблони впорядковуються в тому ж порядку, в якому вони з’являються у файлах.
Шаблон, заданий у командному рядку за допомогою --exclude або прочитаний з файлу, заданого за допомогою --exclude-from, залежить від вершини дерева каталогів. Шаблон, прочитаний з файлу, заданого за допомогою --exclude-per-directory, залежить від каталогу, в якому знаходиться файл шаблону.
Зазвичай, ви маєте змогу використовувати --exclude-standard
, якщо хочете, щоб правила виключення застосовувалися так само, як і команди Porcelain. Щоб емулювати те, що визначає --exclude-standard
, ви можете надати --exclude-per-directory=.gitignore
, а потім вказати:
-
Файл, вказаний змінною конфігурації
core.excludesfile
, якщо така існує, або файл$XDG_CONFIG_HOME/git/ignore
. -
Файл
$GIT_DIR/info/exclude
.
за допомогою опції --exclude-from=
.
GIT
Частина набору git[1]