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 → 2.54.0 no changes
-
2.52.0
2025-11-17
- 2.48.1 → 2.51.2 no changes
-
2.48.0
2025-01-10
- 2.44.1 → 2.47.3 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.36.1 → 2.41.3 no changes
-
2.36.0
2022-04-18
- 2.34.1 → 2.35.8 no changes
-
2.34.0
2021-11-15
- 2.31.1 → 2.33.8 no changes
-
2.31.0
2021-03-15
- 2.29.1 → 2.30.9 no changes
-
2.29.0
2020-10-19
- 2.28.1 no changes
-
2.28.0
2020-07-27
- 2.18.1 → 2.27.1 no changes
-
2.18.0
2018-06-21
- 2.17.1 → 2.17.6 no changes
-
2.17.0
2018-04-02
- 2.12.5 → 2.16.6 no changes
-
2.11.4
2017-09-22
- 2.1.4 → 2.10.5 no changes
-
2.0.5
2014-12-17
ОБЗОР
git index-pack [-v] [-o <файл-индекса>] [--[no-]rev-index] <pack-файл> git index-pack --stdin [--fix-thin] [--keep] [-v] [-o <файл-индекса>] [--[no-]rev-index] [<pack-файл>]
ОПИСАНИЕ
Читает упакованный архив (.pack) из указанного файла, создаёт для него файл индекса пакета (.idx) и опционально записывает обратный индекс (.rev) для указанного пакета. Упакованный архив вместе с индексом пакета затем может быть помещён в каталог objects/pack/ репозитория Git.
ПАРАМЕТРЫ
- -v
-
Быть подробным о происходящем, включая статус выполнения.
- -o <файл-индекса>
-
Записывает созданный индекс пакета в указанный файл. Без этого параметра имя файла индекса пакета создаётся из имени файла упакованного архива путём замены .pack на .idx (и программа завершается ошибкой, если имя упакованного архива не заканчивается на .pack).
- --rev-index
- --no-rev-index
-
Когда этот флаг указан, создаёт обратный индекс (файл
.rev), соответствующий данному пакету. Если указан--verify, проверяет, что существующий обратный индекс корректен. Имеет приоритет надpack.writeReverseIndex. - --stdin
-
Когда этот флаг указан, пакет читается из stdin, а затем его копия записывается в <pack-файл>. Если <pack-файл> не указан, пакет записывается в каталог objects/pack/ текущего репозитория Git с именем по умолчанию, определяемым из содержимого пакета. Если <pack-файл> не указан, рассмотрите возможность использования --keep для предотвращения состояния гонки между этим процессом и git repack.
- --fix-thin
-
Исправляет "тонкий" пакет, созданный
gitpack-objects--thin(подробности см. в git-pack-objects[1]), добавляя в пакет исключённые объекты, на которых основаны объекты с дельтами. Этот параметр имеет смысл только в сочетании с --stdin. - --keep
-
Перед перемещением индекса в его конечное место назначения создаёт пустой файл .keep для связанного pack-файла. Этот параметр обычно необходим с --stdin, чтобы предотвратить удаление одновременно выполняющимся процессом git repack только что созданных пакета и индекса до того, как ссылки могут быть обновлены для использования объектов, содержащихся в пакете.
- --keep=<msg>
-
Как и --keep, создаёт файл .keep перед перемещением индекса в его конечное место назначения. Однако вместо создания пустого файла помещает <сообщение> с последующим LF в файл .keep. Сообщение <сообщение> позже можно искать во всех файлах .keep, чтобы найти те, которые пережили свою полезность.
- --index-version=<version>[,<offset>]
-
Предназначено для использования только набором тестов. Позволяет принудительно задать версию для создаваемого индекса пакета и принудительно использовать 64-битные записи индекса для объектов, расположенных выше указанного смещения.
- --strict[=<id-сообщения>=<серьёзность>…]
-
Завершиться критической ошибкой, если пакет содержит повреждённые объекты или связи. Можно передать необязательный разделённый запятыми список <id-сообщения>
=<серьёзность>, чтобы изменить серьёзность некоторых возможных проблем, например,--strict="missingEmail=ignore,badTagName=error". Дополнительную информацию о возможных значениях <id-сообщения> и <серьёзность> см. в описании параметров конфигурацииfsck.<id-сообщения> в git-fsck[1]. - --progress-title
-
Только для внутреннего использования.
Устанавливает заголовок индикатора выполнения. По умолчанию заголовок — "Receiving objects", а когда указан
--stdin— "Indexing objects". - --check-self-contained-and-connected
-
Завершиться критической ошибкой, если пакет содержит повреждённые связи. Только для внутреннего использования.
- --fsck-objects[=<id-сообщения>=<серьёзность>…]
-
Завершиться критической ошибкой, если пакет содержит повреждённые объекты, но, в отличие от
--strict, не завершается на повреждённых связях. Если пакет содержит дерево, указывающее на blob-объект .gitmodules, который не существует, выводит хеш этого blob-объекта (для проверки вызывающим) после хеша, который идёт в имя файла pack/idx (см. "Примечания").Можно передать необязательный разделённый запятыми список <id-сообщения>
=<серьёзность>, чтобы изменить серьёзность некоторых возможных проблем, например,--fsck-objects="missingEmail=ignore,badTagName=ignore". Дополнительную информацию о возможных значениях <id-сообщения> и <серьёзность> см. в описании параметров конфигурацииfsck.<id-сообщения> в git-fsck[1]. - --threads=<n>
-
Указывает количество потоков для создания при разрешении дельт. Для этого требуется, чтобы index-pack был скомпилирован с pthreads, в противном случае этот параметр игнорируется с предупреждением. Это предназначено для сокращения времени упаковки на многопроцессорных машинах. Однако требуемый объём памяти для окна поиска дельт умножается на количество потоков. Указание 0 заставит Git автоматически определить количество процессоров и использовать максимум 3 потока.
- --max-input-size=<size>
-
Завершиться критической ошибкой, если пакет больше <размера>.
- --object-format=<алгоритм-хеша>
-
Указать заданный формат объекта (алгоритм хеширования) для пакета. Допустимые значения: sha1 и (если включено) sha256. По умолчанию используется алгоритм для текущего репозитория (задаётся
extensions.objectFormat), или sha1, если значение не задано или вне репозитория.Этот параметр нельзя использовать с --stdin.
Примечание: в настоящее время между репозиториями с алгоритмом хеширования SHA-256 и репозиториями с SHA-1 нет взаимной совместимости.
Исторически мы предупреждали, что позже, когда мы добавим подобные функции для их совместимости, репозиториям с SHA-256 могут понадобиться обратно несовместимые изменения. Но на сегодняшний день мы ожидаем, что могут потребоваться только совместимые изменения. Кроме того, если такие изменения окажутся необходимыми, можно ожидать, что репозиториями с SHA-256, созданными с помощью текущей версии Git, возможно будет использовать и в будущих версиями Git без потери данных.
- --promisor[=<сообщение>]
-
Перед фиксацией индекса пакета создаёт для этого пакета файл .promisor. Особенно полезно при записи пакета-промисора с --fix-thin, поскольку имя пакета не является окончательным, пока пакет не будет полностью записан. Если указано <сообщение>, это содержимое будет записано в файл .promisor для использования в будущем. Дополнительную информацию см. в частичном клоне.
Кроме того, если в данном пакете есть объекты, которые ссылаются на объекты, не являющиеся промисорами (в репозитории), переупаковывает эти объекты, не являющиеся промисорами, в пакет-промисор. Это позволяет избежать ситуации, когда в репозитории есть объекты, не являющиеся промисорами, доступные через объекты-промисоры.
Требует, чтобы <pack-файл> не был указан.
ЗАМЕТКИ
После создания индекса хеш, который идёт в имя файла pack/idx, выводится в stdout. Если также использовался --stdin, то этому предшествует либо "pack\t", либо "keep\t", если новый файл .keep был успешно создан. Это полезно для удаления файла .keep, используемого в качестве блокировки для предотвращения состояния гонки с git repack, упомянутого выше.
GIT
Является частью пакета git[1]