セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット作成
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
ガイド
- gitattributes
- コマンドラインインターフェースの慣例
- 日常的なGit
- よくある質問 (FAQ)
- 用語集
- フック
- gitignore
- gitmodules
- リビジョン
- サブモジュール
- チュートリアル
- ワークフロー
- すべてのガイド...
管理
プルーミングコマンド
- 2.43.1 → 2.49.0 変更なし
-
2.43.0
2023-11-20
- 2.38.1 → 2.42.4 変更なし
-
2.38.0
2022-10-02
説明
Gitバンドル形式は、参照(refs)とGitオブジェクトの両方を表現する形式です。バンドルは、git-show-ref[1]に似た形式のヘッダーと、それに続く*.pack形式のパックで構成されます。
この形式はgit-bundle[1]コマンドによって作成および読み取りされ、例えばgit-fetch[1]やgit-clone[1]によってサポートされています。
形式
Gitバンドル形式を定義するためにABNF表記を使用します。詳細については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バンドルはいくつかの部分で構成されています。
-
v3形式にのみ存在する「機能(Capabilities)」は、バンドルが正しく読み取られるために必要な機能を示します。
-
「前提条件(Prerequisites)」は、バンドルに含まれていないが、バンドル内のデータを使用するためにバンドルの読み取り側がすでに持っている必要があるオブジェクトをリストします。バンドルに格納されているオブジェクトは、前提条件となるオブジェクトや、それらから到達可能なもの(例:バンドル内のツリーオブジェクトが前提条件から到達可能なBLOBを参照する)、および/または前提条件となるオブジェクトに対するデルタとして表現される場合があります。
-
「参照(References)」は、履歴グラフの先端、つまりバンドルの読み取り側がそこから「git fetch」できる内容を記録します。
-
「パック(Pack)」は、「References」に記録された参照を持つリポジトリから、「Prerequisites」にリストされたオブジェクトを指す参照を持つリポジトリにフェッチした場合に、「git fetch」が送信するパックデータストリームです。
バンドル形式では、前提条件となるオブジェクトIDの後にコメントを付けることができます。これはコメントであり、特定の意味はありません。バンドルの作成者はここに任意の文字列を記述できます。バンドルの読み取り側はコメントを無視する必要があります。
機能
交渉の機会がないため、不明な機能はgit bundleを中断させます。
-
object-format
は使用されているハッシュアルゴリズムを指定し、extensions.objectFormat
設定値と同じ値を取ることができます。 -
filter
は、git-rev-list[1]の--filter
オプションと同様にオブジェクトフィルターを指定します。結果のパックファイルは、バンドル解除後に.promisor
パックファイルとしてマークされる必要があります。
GIT
git[1]スイートの一部