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.50.1 → 2.51.0 no changes
-
2.50.0
2025-06-16
- 2.48.1 → 2.49.1 no changes
-
2.48.0
2025-01-10
- 2.47.1 → 2.47.3 no changes
-
2.47.0
2024-10-06
- 2.45.3 → 2.46.4 no changes
- 2.45.2 no changes
-
2.45.1
2024-04-29
- 2.44.3 → 2.45.0 no changes
- 2.44.2 no changes
-
2.44.1
2024-04-19
- 2.43.6 → 2.44.0 no changes
- 2.43.5 no changes
-
2.43.4
2024-04-19
- 2.43.1 → 2.43.3 no changes
-
2.43.0
2023-11-20
- 2.42.4 no changes
- 2.42.3 no changes
-
2.42.2
2024-04-19
- 2.41.3 → 2.42.1 no changes
- 2.41.2 no changes
-
2.41.1
2024-04-19
- 2.40.4 → 2.41.0 no changes
- 2.40.3 no changes
-
2.40.2
2024-04-19
- 2.40.0 → 2.40.1 no changes
- 2.39.5 no changes
-
2.39.4
2024-04-19
- 2.39.3 no changes
-
2.39.2
2023-02-06
- 2.39.1 no changes
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 no changes
-
2.38.0
2022-10-02
- 2.35.1 → 2.37.7 no changes
-
2.35.0
2022-01-24
- 2.30.2 → 2.34.8 no changes
- 2.30.1 no changes
- 2.22.2 → 2.30.0 no changes
-
2.22.1
2019-08-11
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.19.1 → 2.20.5 no changes
-
2.19.0
2018-09-10
- 2.11.4 → 2.18.5 no changes
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
- 2.7.6 → 2.8.6 no changes
-
2.6.7
2017-05-05
- 2.1.4 → 2.5.6 no changes
-
2.0.5
2014-12-17
СИНОПСИС
git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs] [--[no-]full] [--strict] [--verbose] [--lost-found] [--[no-]dangling] [--[no-]progress] [--connectivity-only] [--[no-]name-objects] [--[no-]references] [<object>…]
ОПЦІЇ
- <object>
-
Об’єкт, який слід розглядати як початок трасування недосяжності.
Якщо об’єкти не вказано, git fsck за замовчуванням використовує індексний файл, усі посилання SHA-1 у просторі імен
refs
та всі reflogs (якщо не вказано --no-reflogs) як заголовки. - --unreachable
-
Вивести об’єкти, які існують, але недоступні з жодного з опорних вузлів.
- --[no-]dangling
-
Вивести об’єкти, які існують, але ніколи не використовуються «безпосередньо» (за замовчуванням).
--no-dangling
можна використовувати, щоб виключити цю інформацію з виводу. - --root
-
Звітувати про кореневі вузли.
- --tags
-
Теги звітів.
- --cache
-
Розгляньте будь-який об’єкт, записаний в індексі, також як головний вузол для трасування недосяжності.
- --no-reflogs
-
Не вважайте коміти, на які посилається лише запис у рефлозі, досяжними. Ця опція призначена лише для пошуку комітів, які раніше були в посиланні, але тепер там немає, але все ще знаходяться у відповідному рефлозі.
- --full
-
Перевіряти не лише об’єкти в GIT_OBJECT_DIRECTORY ($GIT_DIR/objects), але й ті, що знаходяться в альтернативних пулах об’єктів, перелічених у GIT_ALTERNATE_OBJECT_DIRECTORIES або $GIT_DIR/objects/info/alternates, а також в упакованих архівах Git, що знаходяться в $GIT_DIR/objects/pack та відповідних підкаталогах пакетів в альтернативних пулах об’єктів. Тепер це налаштування за замовчуванням; ви можете вимкнути його за допомогою --no-full.
- --connectivity-only
-
Перевіряйте лише зв’язок досяжних об’єктів, переконавшись, що всі об’єкти, на які посилається досяжний тег, коміт або дерево, присутні. Це пришвидшує операцію, повністю уникаючи зчитування блобів (хоча все одно перевіряється наявність блобів, на які посилаються). Це виявить пошкодження в коммітах та деревах, але не виконає жодних семантичних перевірок (наприклад, на помилки форматування). Пошкодження в блоб-об’єктах взагалі не буде виявлено.
Також буде доступно недоступні теги, коміти та дерева для пошуку кінчиків залишків історії. Використовуйте
--no-dangling
, якщо вам не потрібен цей вивід і ви хочете ще більше пришвидшити його. - --strict
-
Увімкнути більш сувору перевірку, а саме перехопити режим файлу, записаний з встановленим бітом g+w, який був створений старими версіями Git. Існуючі репозиторії, включаючи ядро Linux, сам Git та розріджений репозиторій, мають старі об’єкти, які запускають цю перевірку, але рекомендується перевіряти нові проекти з цим прапорцем.
- --verbose
-
Будьте балакучим.
- --lost-found
-
Записуйте висячі об’єкти в .git/lost-found/commit/ або .git/lost-found/other/, залежно від типу. Якщо об’єкт є блоб-об’єктом, у файл записується його вміст, а не назва об’єкта.
- --name-objects
-
Під час відображення імен досяжних об’єктів, окрім SHA-1, також відображати ім’я, яке описує, як вони досяжні, сумісно з git-rev-parse[1], наприклад,
HEAD@{1234567890}~25^2:src/
. - --[no-]progress
-
Стан виконання за замовчуванням повідомляється у стандартному потоці помилок, коли він підключений до терміналу, якщо не вказано --no-progress або --verbose. --progress примусово повідомляє про стан виконання, навіть якщо стандартний потік помилок не спрямовано до терміналу.
- --[no-]references
-
Контролюйте, чи перевіряти узгодженість бази даних посилань за допомогою «git refs verify». Див. git-refs[1] для отримання детальної інформації. За замовчуванням перевіряється база даних посилань.
КОНФІГУРАЦІЯ
Все, що знаходиться нижче цього рядка в цьому розділі, вибірково включено з документації git-config[1]. Вміст такий самий, як і там:
Warning
|
Missing See original version for this content. |
ОБГОВОРЕННЯ
git-fsck тестує SHA-1 та загальну справність об’єктів, а також повністю відстежує результуючу досяжність та все інше. Він виводить будь-які знайдені пошкодження (відсутні або пошкоджені об’єкти), а якщо ви використовуєте прапорець --unreachable
, він також виводить об’єкти, які існують, але недоступні з жодного із зазначених головних вузлів (або набору за замовчуванням, як згадувалося вище).
Будь-які пошкоджені об’єкти, які вам доведеться знайти в резервних копіях або інших архівах (тобто ви можете просто видалити їх та виконати «rsync» з якимось іншим сайтом у надії, що хтось інший має пошкоджений вами об’єкт).
Якщо core.commitGraph має значення true, файл commit-graph також буде перевірено за допомогою git commit-graph verify. Див. git-commit-graph[1].
Витягнута діагностика
- недосяжний <type> <object>
-
На об’єкт <type> <object> фактично немає прямого чи опосередкованого посилання в жодному з виявлених дерев чи комітів. Це може означати, що є інший кореневий вузол, який ви не вказуєте, або що дерево пошкоджене. Якщо ви не пропустили кореневий вузол, то ви можете видалити недоступні вузли, оскільки їх не можна використовувати.
- відсутній <type> <object>
-
На об’єкт <type> <object> є посилання, але він відсутній у базі даних.
- звисаючий <type> <object>
-
Об’єкт <type> <object> присутній у базі даних, але ніколи не використовується «безпосередньо». Висячий коміт може бути кореневим вузлом.
- невідповідність хешу <object>
-
База даних містить об’єкт, хеш якого не відповідає значенню об’єкта бази даних. Це вказує на серйозну проблему цілісності даних.
ПОВІДОМЛЕННЯ FSCK
Нижче наведено типи помилок, які виявляє git
fsck
, та їх значення, а також рівень серйозності за замовчуванням. Серйозність помилки, окрім тих, що позначені як "(FATAL)", можна налаштувати, встановивши відповідну змінну конфігурації fsck.
<msg-id>.
-
badDate
-
(ПОМИЛКА) Недійсний формат дати в рядку автора/комітера.
-
badDateOverflow
-
(ПОМИЛКА) Недійсне значення дати в рядку автора/комітера.
-
badEmail
-
(ПОМИЛКА) Недійсний формат електронної пошти в рядку автора/комітера.
-
badFilemode
-
(INFO) Дерево містить недійсний запис файлового режиму.
-
badName
-
(ПОМИЛКА) Ім’я автора/комітера порожнє.
-
badObjectSha1
-
(ПОМИЛКА) Об’єкт має неправильний sha1.
-
badPackedRefEntry
-
(ПОМИЛКА) Файл "packed-refs" містить недійсний запис.
-
badPackedRefHeader
-
(ПОМИЛКА) Файл "packed-refs" містить недійсний заголовок.
-
badParentSha1
-
(ПОМИЛКА) Об’єкт commit має невірний батьківський sha1.
-
badRefContent
-
(ПОМИЛКА) Посилання має некоректний вміст.
-
badRefFiletype
-
(ПОМИЛКА) Посилання має невірний тип файлу.
-
badRefName
-
(ПОМИЛКА) Посилання має недійсний формат.
-
badReferentName
-
(ПОМИЛКА) Ім’я референта symref недійсне.
-
badTagName
-
(ІНФОРМАЦІЯ) Тег має недійсний формат.
-
badTimezone
-
(ПОМИЛКА) Знайдено недійсний часовий пояс у рядку автора/комітера.
-
badTree
-
(ПОМИЛКА) Неможливо проаналізувати дерево.
-
badTreeSha1
-
(ПОМИЛКА) Дерево має недійсний формат.
-
badType
-
(ПОМИЛКА) Знайдено недійсний тип об’єкта.
-
duplicateEntries
-
(ПОМИЛКА) Дерево містить дублікати записів файлів.
-
emptyName
-
(ПОПЕРЕДЖЕННЯ) Шлях містить порожнє ім’я.
-
emptyPackedRefsFile
-
(INFO) Файл "packed-refs" порожній. Повідомте про цю помилку до списку розсилки git@vger.kernel.org. Оскільки лише дуже ранні версії Git створювали такий порожній файл "packed_refs", ми можемо посилити це правило в майбутньому.
-
extraHeaderEntry
-
(ІГНОРУВАТИ) Після
tagger
знайдено зайві заголовки. -
fullPathname
-
(ПОПЕРЕДЖЕННЯ) Шлях містить повний шлях, що починається з "/".
-
gitattributesBlob
-
(ПОМИЛКА) У файлі
.gitattributes
знайдено не-блоб об’єкт. -
gitattributesLarge
-
(ПОМИЛКА) Блоб-об’єкт
.gitattributes
занадто великий. -
gitattributesLineLength
-
(ПОМИЛКА) Блоб-об’єкт
.gitattributes
містить занадто довгі рядки. -
gitattributesMissing
-
(ПОМИЛКА) Не вдалося прочитати блоб
.gitattributes
. -
gitattributesSymlink
-
(INFO)
.gitattributes
– це символічне посилання. -
gitignoreSymlink
-
(INFO)
.gitignore
– це символічне посилання. -
gitmodulesBlob
-
(ПОМИЛКА) У
.gitmodules
знайдено не-блоб об’єкт. -
gitmodulesLarge
-
(ПОМИЛКА) Файл
.gitmodules
занадто великий для розбору. -
gitmodulesMissing
-
(ПОМИЛКА) Не вдалося прочитати блоб
.gitmodules
. -
gitmodulesName
-
(ПОМИЛКА) Ім’я підмодуля недійсне.
-
gitmodulesParse
-
(INFO) Не вдалося проаналізувати блоб
.gitmodules
.
gitmodulesLarge
;
(ПОМИЛКА) .gitmodules
blob занадто великий для розбору.
-
gitmodulesPath
-
(ПОМИЛКА) Шлях
.gitmodules
недійсний. -
gitmodulesSymlink
-
(ПОМИЛКА)
.gitmodules
– це символічне посилання. -
gitmodulesUpdate
-
(ПОМИЛКА) Знайдено недійсне налаштування оновлення підмодуля.
-
gitmodulesUrl
-
(ПОМИЛКА) Знайдено недійсну URL-адресу підмодуля.
-
hasDot
-
(ПОПЕРЕДЖЕННЯ) Дерево містить запис з назвою
.
. -
hasDotdot
-
(ПОПЕРЕДЖЕННЯ) Дерево містить запис з назвою
..
. -
hasDotgit
-
(ПОПЕРЕДЖЕННЯ) Дерево містить запис з назвою
.git
. -
largePathname
-
(WARN) Дерево містить запис із дуже довгим шляхом. Якщо значення
fsck.largePathname
містить двокрапку, це значення використовується як максимально допустима довжина (наприклад, "warn:10" скаржитиметься на будь-який компонент шляху довжиною 11 або більше байтів). Значення за замовчуванням — 4096. -
mailmapSymlink
-
(INFO)
.mailmap
– це символічне посилання. -
missingAuthor
-
(ПОМИЛКА) Автор відсутній.
-
missingCommitter
-
(ПОМИЛКА) Відсутній коміттер.
-
missingEmail
-
(ПОМИЛКА) У рядку автора/комітера відсутня електронна адреса.
-
missingNameBeforeEmail
-
(ПОМИЛКА) Відсутнє ім’я перед електронною поштою в рядку автора/комітера.
-
missingObject
-
(ПОМИЛКА) Відсутній рядок
object
в тегу object. -
missingSpaceBeforeDate
-
(ПОМИЛКА) Бракує пробілу перед датою в рядку автора/комітера.
-
missingSpaceBeforeEmail
-
(ПОМИЛКА) Бракує пробілу перед електронною адресою в рядку автора/комітера.
-
missingTag
-
(ПОМИЛКА) Неочікуваний кінець після рядка
type
в об’єкті тегу. -
missingTagEntry
-
(ПОМИЛКА) Відсутній рядок
tag
в об’єкті tag. -
missingTaggerEntry
-
(INFO) Відсутній рядок
tagger
в об’єкті tag. -
missingTree
-
(ПОМИЛКА) Відсутній рядок
tree
в об’єкті commit. -
missingType
-
(ПОМИЛКА) Недійсне значення типу в рядку
type
в об’єкті тегу. -
missingTypeEntry
-
(ПОМИЛКА) Відсутній рядок
type
в об’єкті тегу. -
multipleAuthors
-
(ПОМИЛКА) У коміті знайдено кілька рядків автора.
-
nulInCommit
-
(ПОПЕРЕДЖЕННЯ) У тілі об’єкта коміту знайдено байт NUL.
-
nulInHeader
-
(ФАТАЛЬНИЙ) У заголовку об’єкта існує байт NUL.
-
nullSha1
-
(WARN) Дерево містить записи, що вказують на нульовий sha1.
-
packedRefEntryNotTerminated
-
(ПОМИЛКА) Файл "packed-refs" містить запис, який не завершується символом нового рядка.
-
packedRefUnsorted
-
(ПОМИЛКА) Файл "packed-refs" не відсортовано.
-
refMissingNewline
-
(INFO) Вільне посилання, яке не закінчується символом нового рядка (LF). Оскільки коректні реалізації Git ніколи не створювали такий файл вільних посилань, це може стати помилкою в майбутньому. Повідомте про цю помилку до списку розсилки git@vger.kernel.org, оскільки нам потрібно знати, які інструменти створили такий файл.
-
symlinkRef
-
(ІНФОРМАЦІЯ) Символічне посилання використовується як symref. Повідомте про цю помилку до списку розсилки git@vger.kernel.org, оскільки ми оцінюємо можливість відмови від підтримки створення символічних посилань як symref.
-
symrefTargetIsNotARef
-
(ІНФОРМАЦІЯ) Ціль символічного посилання не вказує ні на кореневе посилання, ні на посилання, що починається з "refs/". Хоча ми дозволяємо створювати symref, що вказує на референт, що знаходиться поза "ref", за допомогою
git
symbolic-ref
, ми можемо посилити це правило в майбутньому. Повідомте про цю помилку до списку розсилки git@vger.kernel.org, оскільки нам потрібно знати, які інструменти створили такий файл. -
trailingRefContent
-
(INFO) Вільне посилання має кінцевий вміст. Оскільки коректні реалізації Git ніколи не створювали такий файл вільних посилань, це може стати помилкою в майбутньому. Повідомте про цю помилку до списку розсилки git@vger.kernel.org, оскільки нам потрібно знати, які інструменти створили такий файл.
-
treeNotSorted
-
(ПОМИЛКА) Дерево неправильно відсортоване.
-
unknownType
-
(ПОМИЛКА) Знайдено невідомий тип об’єкта.
-
unterminatedHeader
-
(ФАТАЛЬНИЙ) Відсутній кінець рядка в заголовку об’єкта.
-
zeroPaddedDate
-
(ПОМИЛКА) Знайдено дату, доповнену нулями, у рядку автора/комітера.
-
zeroPaddedFilemode
-
(ПОПЕРЕДЖЕННЯ) У дереві знайдено файловий режим з доповненням нулями.
Змінні середовища
- GIT_OBJECT_DIRECTORY
-
використовується для визначення кореневого каталогу бази даних об’єктів (зазвичай $GIT_DIR/objects)
- GIT_INDEX_FILE
-
використовується для визначення індексного файлу індексу
- GIT_ALTERNATE_OBJECT_DIRECTORIES
-
використовується для визначення додаткових коренів бази даних об’єктів (зазвичай не встановлені)
GIT
Частина набору git[1]