設定與配置
取得與建立專案
基本快照
分支與合併
分享與更新專案
檢視與比較
修補
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.44.1 → 2.47.0 沒有變更
-
2.44.0
02/23/24
- 2.43.1 → 2.43.5 沒有變更
-
2.43.0
11/20/23
- 2.42.1 → 2.42.3 沒有變更
-
2.42.0
08/21/23
- 2.36.1 → 2.41.2 沒有變更
-
2.36.0
04/18/22
- 2.34.1 → 2.35.8 沒有變更
-
2.34.0
11/15/21
- 2.31.1 → 2.33.8 沒有變更
-
2.31.0
03/15/21
- 2.29.1 → 2.30.9 沒有變更
-
2.29.0
10/19/20
- 2.28.1 沒有變更
-
2.28.0
07/27/20
- 2.18.1 → 2.27.1 沒有變更
-
2.18.0
06/21/18
- 2.17.1 → 2.17.6 沒有變更
-
2.17.0
04/02/18
- 2.12.5 → 2.16.6 沒有變更
-
2.11.4
09/22/17
- 2.1.4 → 2.10.5 沒有變更
-
2.0.5
12/17/14
概要
git index-pack [-v] [-o <index-file>] [--[no-]rev-index] <pack-file> git index-pack --stdin [--fix-thin] [--keep] [-v] [-o <index-file>] [--[no-]rev-index] [<pack-file>]
描述
從指定檔案讀取封裝壓縮檔 (.pack),為其建立封裝索引檔 (.idx),並選擇性地為指定的封裝寫入反向索引 (.rev)。封裝壓縮檔連同封裝索引可以放置在 Git 儲存庫的 objects/pack/ 目錄中。
選項
- -v
-
詳細說明正在發生的事情,包括進度狀態。
- -o <索引檔>
-
將產生的封裝索引寫入指定的檔案。若沒有此選項,封裝索引檔的名稱會從封裝壓縮檔的名稱建構,方法是將 .pack 取代為 .idx (如果封裝壓縮檔的名稱沒有以 .pack 結尾,則程式會失敗)。
- --[no-]rev-index
-
提供此旗標時,會產生與指定封裝對應的反向索引 (
.rev
檔案)。如果給定--verify
,請確保現有的反向索引正確。優先於pack.writeReverseIndex
。 - --stdin
-
提供此旗標時,會從 stdin 讀取封裝,然後將副本寫入 <封裝檔>。如果未指定 <封裝檔>,則封裝會寫入目前 Git 儲存庫的 objects/pack/ 目錄,並使用從封裝內容判定的預設名稱。如果未指定 <封裝檔>,請考慮使用 --keep 以防止此處理程序與git repack之間發生競爭狀況。
- --fix-thin
-
藉由將差異化物件所依據的排除物件新增至封裝,來修正
git pack-objects --thin
產生的「薄」封裝 (詳細資訊請參閱git-pack-objects[1])。此選項僅在搭配 --stdin 使用時才有意義。 - --keep
-
在將索引移動到最終目的地之前,請為相關的封裝檔案建立一個空的 .keep 檔案。此選項通常在使用 --stdin 時是必要的,以防止同時進行的 git repack 處理程序在參考更新為使用封裝中包含的物件之前,刪除新建立的封裝和索引。
- --keep=<msg>
-
與 --keep 類似,在將索引移動到最終目的地之前,建立一個 .keep 檔案。但是,不是建立一個空檔案,而是將 <msg> 後接一個 LF 放入 .keep 檔案。之後可以在所有 .keep 檔案中搜尋 <msg> 訊息,以找出任何已過時的檔案。
- --index-version=<版本>[,<位移>]
-
這僅供測試套件使用。它允許強制設定產生封裝索引的版本,並強制在位於給定位移之上的物件使用 64 位元索引項目。
- --strict[=<訊息 ID>=<嚴重性>…]
-
如果封裝包含損壞的物件或連結,則會終止。可以傳遞以逗號分隔的
<訊息 ID>=<嚴重性>
清單,以變更某些可能問題的嚴重性,例如--strict="missingEmail=ignore,badTagName=error"
。如需有關<訊息 ID>
和<嚴重性>
可能值的詳細資訊,請參閱 git-fsck[1] 中fsck.<訊息 ID>
配置選項的項目。 - --progress-title
-
僅供內部使用。
設定進度列的標題。標題預設為「接收物件」,指定
--stdin
時為「索引物件」。 - --check-self-contained-and-connected
-
如果封裝包含損壞的連結,則會終止。僅供內部使用。
- --fsck-objects[=<訊息 ID>=<嚴重性>…]
-
如果封裝包含損壞的物件,則會終止,但與
--strict
不同,不會因損壞的連結而失敗。如果封裝包含指向不存在的 .gitmodules blob 的樹狀結構,則會在放入封裝/索引檔名稱的雜湊之後,列印該 blob 的雜湊 (供呼叫端檢查) (請參閱「注意事項」)。可以傳遞以逗號分隔的
<訊息 ID>=<嚴重性>
清單,以變更某些可能問題的嚴重性,例如--fsck-objects="missingEmail=ignore,badTagName=ignore"
。如需有關<訊息 ID>
和<嚴重性>
可能值的詳細資訊,請參閱 git-fsck[1] 中fsck.<訊息 ID>
配置選項的項目。 - --threads=<n>
-
指定解析差異時要產生的執行緒數目。這需要使用 pthreads 編譯 index-pack,否則此選項會被忽略並發出警告。這是為了縮短多處理器電腦上的封裝時間。但是,差異搜尋視窗所需的記憶體量會乘以執行緒數目。指定 0 會導致 Git 自動偵測 CPU 數目,並最多使用 3 個執行緒。
- --max-input-size=<大小>
-
如果封裝大於 <大小>,則會終止。
- --object-format=<雜湊演算法>
-
為封裝指定指定的物件格式 (雜湊演算法)。有效值為 sha1 和 (如果已啟用) sha256。預設值為目前儲存庫的演算法 (由
extensions.objectFormat
設定),如果未設定值或在儲存庫外部,則為 sha1。此選項不能與 --stdin 搭配使用。
注意:目前,SHA-256 儲存庫和 SHA-1 儲存庫之間沒有互通性。
從歷史上看,我們警告說,當我們引入此類互通性功能時,SHA-256 儲存庫可能稍後需要不相容的變更。今天,我們只預期相容的變更。此外,如果證明有必要進行此類變更,可以預期使用當前 Git 建立的 SHA-256 儲存庫,將可由未來版本的 Git 使用,而不會遺失資料。
- --promisor[=<訊息>]
-
在提交封裝索引之前,請為此封裝建立 .promisor 檔案。當使用 --fix-thin 寫入承諾封裝時特別有用,因為封裝的名稱直到完全寫入封裝後才會最終確定。如果提供
<訊息>
,則該內容會寫入 .promisor 檔案以供未來參考。如需詳細資訊,請參閱部分複製。
注意事項
建立索引後,會將放入封裝/索引檔名稱的雜湊列印到 stdout。如果同時使用 --stdin,則會加上「pack\t」或「keep\t」作為前綴 (如果已成功建立新的 .keep 檔案)。這可用於移除作為鎖定的 .keep 檔案,以防止上述與 git repack 的競爭。
GIT
屬於 git[1] 套件的一部分