簡體中文 ▾ 主題 ▾ 最新版本 ▾ git-multi-pack-index 最後更新於 2.52.0

名稱

git-multi-pack-index - 寫入和驗證 multi-pack-indexes

概要

git multi-pack-index [--object-dir=<dir>] [--[no-]bitmap] <sub-command>

描述

寫入或驗證 multi-pack-index (MIDX) 檔案。

選項

--object-dir=<dir>

使用給定的目錄作為 Git 物件的位置。我們在此查詢 <dir>/packs/multi-pack-index 作為當前的 MIDX 檔案,並在 <dir>/packs 中查詢要索引的 pack 檔案。

<dir> 必須是當前倉庫的備用倉庫。

--progress
--no-progress

明確開啟或關閉進度顯示。如果兩者都沒有指定,則當標準錯誤連線到終端時顯示進度。支援的子命令有 writeverifyexpirerepack

可用的子命令如下

write

寫入一個新的 MIDX 檔案。以下選項可用於 write 子命令

--preferred-pack=<pack>

指定後,當存在其物件的其他副本時,優先選擇此 pack。對於在首選 pack 中找不到的物件,將始終優先選擇修改時間 (mtime) 最新的副本。如果未指定,則預設使用修改時間 (mtime) 最早的 pack。首選 pack 必須至少包含一個物件。

--[no-]bitmap

控制是否寫入 multi-pack bitmap。

--stdin-packs

寫入一個 multi-pack index,僅包含透過 stdin 提供的以行為分隔的 pack index 基名集合。

--refs-snapshot=<path>

當使用 --bitmap 時,可以選擇性地指定一個檔案,該檔案包含在 repacking 之前拍攝的“refs 快照”。

Reference snapshot 由以行為分隔的 OID 組成,對應於 ref 的尖端,通常由 git repack 在生成新 pack 之前獲取。一行可以選擇性地以 + 字元開頭,以指示與該 OID 對應的 ref 是“首選”的(請參見 git-config[1]pack.preferBitmapTips)。

<path> 給出的檔案必須是可讀的,並且可以包含重複項。(如果給定的 OID 被給出多次,則只有當至少一個例項以特殊的 + 標記開始時,它才被標記為首選)。

--incremental

寫入一個增量 MIDX 檔案,僅包含現有 MIDX 層中不存在的物件和 pack。在必要時將非增量 MIDX 遷移到增量 MIDX。與 --bitmap 不相容。

verify

驗證 MIDX 檔案的內容。

expire

刪除由 MIDX 檔案跟蹤但沒有任何物件被 MIDX 引用的 pack 檔案(.keep pack 和 cruft pack 除外)。之後重寫 MIDX 檔案以移除所有對這些 pack 檔案的引用。

注意
此模式與增量 MIDX 檔案不相容。
repack

建立一個新的 pack 檔案,其中包含 multi-pack-index 引用的少量 pack 檔案中的物件。如果 --batch-size=<size> 引數給出的 size 為零,則建立一個包含 multi-pack-index 引用的所有物件的 pack。對於非零 batch size,透過檢查從舊到新的 pack 來選擇 pack 檔案,透過計算 pack 中被 multi-pack-index 引用的物件數量來計算“預期大小”,然後除以 pack 中的總物件數量並乘以 pack size。我們選擇預期大小小於 batch size 的 pack,直到 pack 集的總預期大小至少達到 batch size,或者所有 pack 檔案都被考慮。如果只選擇了一個 pack 檔案,則不執行任何操作。如果建立了新的 pack 檔案,則重寫 multi-pack-index 以引用新的 pack 檔案。稍後執行 git multi-pack-index expire 將刪除屬於此批次的 pack 檔案。

如果 repack.packKeptObjectsfalse,則不會選擇具有關聯 .keep 檔案的 pack 檔案作為 repacking 的批次。

注意
此模式與增量 MIDX 檔案不相容。

示例

  • 為當前 .git 目錄中的 pack 檔案寫入 MIDX 檔案。

    $ git multi-pack-index write
  • 為當前 .git 目錄中的 pack 檔案寫入 MIDX 檔案,並帶有相應的 bitmap。

    $ git multi-pack-index write --preferred-pack=<pack> --bitmap
  • 為備用物件儲存中的 pack 檔案寫入 MIDX 檔案。

    $ git multi-pack-index --object-dir <alt> write
  • 驗證當前 .git 目錄中 pack 檔案的 MIDX 檔案。

    $ git multi-pack-index verify

另請參閱

有關 multi-pack-index 功能及其檔案格式的更多資訊,請參閱 Multi-Pack-Index 設計文件gitformat-pack[5]

GIT

Git[1] 套件的一部分