設定與配置
取得與建立專案
基本快照
分支與合併
分享與更新專案
檢視與比較
修補
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.43.1 → 2.47.0 沒有變更
-
2.43.0
11/20/23
- 2.38.1 → 2.42.3 沒有變更
-
2.38.0
10/02/22
描述
Git 捆綁格式是一種表示參考 (refs) 和 Git 物件的格式。捆綁檔案的開頭是一個類似 git-show-ref[1] 的標頭,接著是一個 *.pack 格式的封裝檔。
此格式由 git-bundle[1] 命令建立和讀取,並受到例如 git-fetch[1] 和 git-clone[1] 的支援。
格式
我們將使用 ABNF 表示法來定義 Git 捆綁格式。請參閱 gitprotocol-common[5] 以取得詳細資訊。
v2 捆綁檔案看起來像這樣
bundle = signature *prerequisite *reference LF pack signature = "# v2 git bundle" LF prerequisite = "-" obj-id SP comment LF comment = *CHAR reference = obj-id SP refname LF pack = ... ; packfile
v3 捆綁檔案看起來像這樣
bundle = signature *capability *prerequisite *reference LF pack signature = "# v3 git bundle" LF capability = "@" key ["=" value] LF prerequisite = "-" obj-id SP comment LF comment = *CHAR reference = obj-id SP refname LF key = 1*(ALPHA / DIGIT / "-") value = *(%01-09 / %0b-FF) pack = ... ; packfile
語意
Git 捆綁檔案由幾個部分組成。
-
"功能 (Capabilities)",僅在 v3 格式中存在,表示捆綁檔案需要正確讀取的功能。
-
"先決條件 (Prerequisites)" 列出未包含在捆綁檔案中的物件,且為了使用捆綁檔案中的資料,捆綁檔案的讀取器必須已具備的物件。捆綁檔案中儲存的物件可能會參考先決條件物件以及從它們可存取到的任何物件 (例如,捆綁檔案中的樹狀物件可以參考從先決條件可存取的 Blob),和/或表示為相對於先決條件物件的差異。
-
"參考 (References)" 記錄歷史圖的提示,也就是說,捆綁檔案的讀取器可以從它 "git fetch" 的內容。
-
"封裝 (Pack)" 是 "git fetch" 會傳送的封裝資料流,如果您從具有上述 "參考 (References)" 中記錄的參考的儲存庫,提取到具有指向上述 "先決條件 (Prerequisites)" 中列出的物件的參考的儲存庫。
在捆綁檔案格式中,先決條件物件 ID (obj-id) 後面可以跟隨一個註解。這是一個註解,沒有特定含義。捆綁檔案的寫入者可以在此處放置任何字串。捆綁檔案的讀取器必須忽略註解。
功能
由於沒有協商的機會,未知的功能會導致 git bundle 中止。
-
object-format
指定使用的雜湊演算法,可以採用與extensions.objectFormat
配置值相同的值。 -
filter
指定物件篩選器,如同 git-rev-list[1] 中的--filter
選項。產生的封裝檔案在解綁後必須標記為.promisor
封裝檔案。
GIT
屬於 git[1] 套件的一部分