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.53.0
2026-02-02
-
2.52.0
2025-11-17
- 2.50.1 → 2.51.2 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] [<объект>…]
ПАРАМЕТРЫ
- <объект>
-
Объект, который следует рассматривать как голову трассировки недостижимости.
Если объекты не заданы, git fsck по умолчанию использует в качестве голов файл индекса, все ссылки SHA-1 в пространстве имён
refsи все журналы ссылок (если не указан --no-reflogs). - --unreachable
-
Вывести объекты, которые существуют, но не достижимы ни из одного из узлов ссылок.
- --dangling
- --no-dangling
-
Вывести объекты, которые существуют, но никогда не используются напрямую (по умолчанию).
--no-danglingможно использовать для исключения этой информации из вывода. - --root
-
Вывести отчёт по корневым узлам.
- --tags
-
Вывести отчёт по меткам.
- --cache
-
Считать любой объект, записанный в индексе, также головным узлом для трассировки недостижимости.
- --no-reflogs
-
Не считать достижимыми коммиты, на которые ссылается только запись в журнале ссылок (reflog). Эта опция предназначена только для поиска коммитов, которые раньше были в ссылке, но теперь нет, но всё ещё находятся в соответствующем журнале ссылок.
- --full
-
Проверять не только объекты в GIT_OBJECT_DIRECTORY ($GIT_DIR/objects), но также те, которые находятся в дополнительных пулах объектов, перечисленных в GIT_ALTERNATE_OBJECT_DIRECTORIES или $GIT_DIR/objects/info/alternates, и в упакованных архивах Git, находящихся в $GIT_DIR/objects/pack и соответствующих подкаталогах pack в дополнительных пулах объектов. Теперь это значение по умолчанию; вы можете отключить его с помощью --no-full.
- --connectivity-only
-
Проверять только связность достижимых объектов, убеждаясь, что любые объекты, на которые ссылается достижимая метка, коммит или дерево, присутствуют. Это ускоряет операцию, полностью избегая чтения blob-объектов (хотя всё равно проверяется существование упомянутых blob-объектов). Это обнаружит повреждения в коммитах и деревьях, но не будет выполнять никаких семантических проверок (например, на ошибки формата). Повреждения в blob-объектах не будут обнаружены вообще.
Недостижимые метки, коммиты и деревья также будут доступны для поиска верхушек (tips) болтающихся (dangling) сегментов истории. Используйте
--no-dangling, если вас не волнует этот вывод и вы хотите ещё больше ускорить процесс. - --strict
-
Включить более строгую проверку, а именно выявлять режим файла, записанный с установленным битом g+w, который создавался старыми версиями Git. Существующие репозитории, включая ядро Linux, сам Git и репозиторий sparse, имеют старые объекты, которые вызывают эту проверку, но рекомендуется проверять новые проекты с этим флагом.
- --verbose
-
Быть многословным.
- --lost-found
-
Записывать болтающиеся (dangling) объекты в .git/lost-found/commit/ или .git/lost-found/other/ в зависимости от типа. Если объект является blob-объектом, содержимое записывается в файл, а не его имя объекта.
- --name-objects
-
При отображении имён достижимых объектов, помимо SHA-1, также отображать имя, описывающее как они достижимы, совместимое с git-rev-parse[1], например
HEAD@{1234567890}~25^2:src/. - --progress
- --no-progress
-
Состояние выполнения по умолчанию выводится в стандартный поток ошибок, если он подключён к терминалу, если не указан --no-progress или --verbose. --progress принудительно выводит состояние выполнения, даже если стандартный поток ошибок не направлен на терминал.
- --references
- --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, файл графа коммитов также будет проверен с помощью git commit-graph verify. См. git-commit-graph[1].
Извлечённая диагностика
- unreachable <тип> <объект>
-
На объект <объект> типа <тип> нет прямых или косвенных ссылок ни в одном из просмотренных деревьев или коммитов. Это может означать, что существует другой корневой узел, который вы не указали, или дерево повреждено. Если вы не пропустили корневой узел, то вы можете смело удалять недостижимые узлы, поскольку они не могут быть использованы.
- missing <тип> <объект>
-
На объект <объект> типа <тип> имеется ссылка, но он отсутствует в базе данных.
- dangling <тип> <объект>
-
Объект <объект> типа <тип> присутствует в базе данных, но никогда не используется напрямую. Болтающийся (dangling) коммит может быть корневым узлом.
- hash mismatch <объект>
-
В базе данных есть объект, хеш которого не соответствует значению в базе данных объектов. Это указывает на серьёзную проблему целостности данных.
СООБЩЕНИЯ FSCK
Ниже перечислены типы ошибок, обнаруживаемых git fsck, и значение каждой ошибки с их серьёзностью по умолчанию. Серьёзность ошибки, кроме тех, которые помечены как «(FATAL)», можно изменить, установив соответствующую переменную конфигурации fsck.<id-сообщения>.
-
badDate -
(ОШИБКА) Неверный формат даты в строке автора/коммитера.
-
badDateOverflow -
(ОШИБКА) Неверное значение даты в строке автора/коммитера.
-
badEmail -
(ОШИБКА) Неверный формат email в строке автора/коммитера.
-
badFilemode -
(ИНФО) Дерево содержит некорректную запись режима файла.
-
badGpgsig -
(ОШИБКА) Тег содержит некорректную (усечённую) подпись (например, заголовок
gpgsig). -
badHeaderContinuation -
(ОШИБКА) Заголовок продолжения (например, для
gpgsig) неожиданно усечён. -
badName -
(ОШИБКА) Имя автора/коммитера пустое.
-
badObjectSha1 -
(ОШИБКА) У объекта некорректный sha1.
-
badPackedRefEntry -
(ОШИБКА) Файл "packed-refs" содержит некорректную запись.
-
badPackedRefHeader -
(ОШИБКА) Файл "packed-refs" содержит некорректный заголовок.
-
badParentSha1 -
(ОШИБКА) У объекта коммита некорректный sha1 родителя.
-
badRefContent -
(ОШИБКА) Ссылка содержит некорректное содержимое.
-
badRefFiletype -
(ОШИБКА) Ссылка имеет некорректный тип файла.
-
badRefName -
(ОШИБКА) Ссылка имеет неверный формат.
-
badReferentName -
(ОШИБКА) Имя референта символьной ссылки неверно.
-
badReftableTableName -
(ПРЕДУПРЕЖДЕНИЕ) Таблица reftable имеет неверное имя.
-
badTagName -
(ИНФО) Тег имеет неверный формат.
-
badTimezone -
(ОШИБКА) Обнаружена неверная временная зона в строке автора/коммитера.
-
badTree -
(ОШИБКА) Невозможно разобрать дерево.
-
badTreeSha1 -
(ОШИБКА) Дерево имеет неверный формат.
-
badType -
(ОШИБКА) Обнаружен неверный тип объекта.
-
duplicateEntries -
(ОШИБКА) Дерево содержит повторяющиеся записи файлов.
-
emptyName -
(ПРЕДУПРЕЖДЕНИЕ) Путь содержит пустое имя.
-
emptyPackedRefsFile -
(ИНФО) Файл "packed-refs" пуст. Сообщите об этом в рассылку git@vger.kernel.org, если вы видите эту ошибку. Поскольку только очень ранние версии Git создавали такой пустой файл "packed_refs", мы можем ужесточить это правило в будущем.
-
extraHeaderEntry -
(ИГНОРИРОВАТЬ) Обнаружены дополнительные заголовки после
tagger. -
fullPathname -
(ПРЕДУПРЕЖДЕНИЕ) Путь содержит полный путь, начинающийся с "/".
-
gitattributesBlob -
(ОШИБКА) В
.gitattributesнайден не blob. -
gitattributesLarge -
(ОШИБКА) Blob
.gitattributesслишком большой. -
gitattributesLineLength -
(ОШИБКА) Blob
.gitattributesсодержит слишком длинные строки. -
gitattributesMissing -
(ОШИБКА) Невозможно прочитать blob
.gitattributes. -
gitattributesSymlink -
(ИНФО)
.gitattributesявляется символьной ссылкой. -
gitignoreSymlink -
(ИНФО)
.gitignoreявляется символьной ссылкой. -
gitmodulesBlob -
(ОШИБКА) В
.gitmodulesнайден не blob. -
gitmodulesLarge -
(ОШИБКА) Файл
.gitmodulesслишком большой для разбора. -
gitmodulesMissing -
(ОШИБКА) Невозможно прочитать blob
.gitmodules. -
gitmodulesName -
(ОШИБКА) Неверное имя подмодуля.
-
gitmodulesParse -
(ИНФО) Не удалось разобрать blob
.gitmodules. -
gitmodulesPath -
(ОШИБКА) Неверный путь
.gitmodules. -
gitmodulesSymlink -
(ОШИБКА)
.gitmodulesявляется символьной ссылкой. -
gitmodulesUpdate -
(ОШИБКА) Обнаружена неверная настройка обновления подмодуля.
-
gitmodulesUrl -
(ОШИБКА) Обнаружен неверный URL подмодуля.
-
hasDot -
(ПРЕДУПРЕЖДЕНИЕ) Дерево содержит запись с именем
.. -
hasDotdot -
(ПРЕДУПРЕЖДЕНИЕ) Дерево содержит запись с именем
... -
hasDotgit -
(ПРЕДУПРЕЖДЕНИЕ) Дерево содержит запись с именем
.git. -
largePathname -
(ПРЕДУПРЕЖДЕНИЕ) Дерево содержит запись с очень длинным именем пути. Если значение
fsck.largePathnameсодержит двоеточие, это значение используется как максимально допустимая длина (например, "warn:10" будет жаловаться на любой компонент пути длиной 11 байт или более). Значение по умолчанию — 4096. -
mailmapSymlink -
(ИНФО)
.mailmapявляется символьной ссылкой. -
missingAuthor -
(ОШИБКА) Отсутствует автор.
-
missingCommitter -
(ОШИБКА) Отсутствует коммитер.
-
missingEmail -
(ОШИБКА) В строке автора/коммитера отсутствует эл. почта.
-
missingNameBeforeEmail -
(ОШИБКА) В строке автора/коммитера отсутствует имя перед эл. почтой.
-
missingObject -
(ОШИБКА) В объекте тега отсутствует строка
object. -
missingSpaceBeforeDate -
(ОШИБКА) В строке автора/коммитера отсутствует пробел перед датой.
-
missingSpaceBeforeEmail -
(ОШИБКА) В строке автора/коммитера отсутствует пробел перед эл. почтой.
-
missingTag -
(ОШИБКА) Неожиданный конец после строки
typeв объекте тега. -
missingTagEntry -
(ОШИБКА) В объекте тега отсутствует строка
tag. -
missingTaggerEntry -
(ИНФО) В объекте тега отсутствует строка
tagger. -
missingTree -
(ОШИБКА) В объекте коммита отсутствует строка
tree. -
missingType -
(ОШИБКА) Неверное значение типа в строке
typeв объекте тега. -
missingTypeEntry -
(ОШИБКА) В объекте тега отсутствует строка
type. -
multipleAuthors -
(ОШИБКА) В коммите найдено несколько строк автора.
-
nulInCommit -
(ПРЕДУПРЕЖДЕНИЕ) Обнаружен байт NUL в теле объекта коммита.
-
nulInHeader -
(КРИТИЧЕСКАЯ) Байт NUL присутствует в заголовке объекта.
-
nullSha1 -
(ПРЕДУПРЕЖДЕНИЕ) Дерево содержит записи, указывающие на null sha1.
-
packedRefEntryNotTerminated -
(ОШИБКА) Файл "packed-refs" содержит запись, не завершённую переводом строки.
-
packedRefUnsorted -
(ОШИБКА) Файл "packed-refs" не отсортирован.
-
refMissingNewline -
(ИНФО) Неупакованная ссылка, не заканчивающаяся переводом строки (LF). Поскольку корректные реализации Git никогда не создавали таких неупакованных файлов ссылок, это может стать ошибкой в будущем. Сообщите об этом в рассылку git@vger.kernel.org, если вы видите эту ошибку, так как нам нужно знать, какие инструменты создали такой файл.
-
symlinkRef -
(ИНФО) Символьная ссылка используется как символьная ссылка (symref). Сообщите об этом в рассылку git@vger.kernel.org, если вы видите эту ошибку, так как мы оцениваем возможность отказа от поддержки создания символьных ссылок в качестве symref.
-
symrefTargetIsNotARef -
(ИНФО) Цель символьной ссылки указывает ни на корневую ссылку, ни на ссылку, начинающуюся с "refs/". Хотя мы разрешаем создавать symref, указывающий на референт вне пространства "ref" с помощью
gitsymbolic-ref, мы можем ужесточить это правило в будущем. Сообщите об этом в рассылку git@vger.kernel.org, если вы видите эту ошибку, так как нам нужно знать, какие инструменты создали такой файл. -
trailingRefContent -
(ИНФО) Неупакованная ссылка имеет завершающее содержимое. Поскольку корректные реализации Git никогда не создавали таких неупакованных файлов ссылок, это может стать ошибкой в будущем. Сообщите об этом в рассылку git@vger.kernel.org, если вы видите эту ошибку, так как нам нужно знать, какие инструменты создали такой файл.
-
treeNotSorted -
(ОШИБКА) Дерево неправильно отсортировано.
-
unknownType -
(ОШИБКА) Обнаружен неизвестный тип объекта.
-
unterminatedHeader -
(КРИТИЧЕСКАЯ) В заголовке объекта отсутствует конец строки.
-
zeroPaddedDate -
(ОШИБКА) Обнаружена дата с нулевыми заполнениями в строке автора/коммитера.
-
zeroPaddedFilemode -
(ПРЕДУПРЕЖДЕНИЕ) Обнаружен режим файла с нулевыми заполнениями в дереве.
GIT
Является частью пакета git[1]