セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ
デバッグ
メール
外部システム
サーバー管理
ガイド
- gitattributes
- コマンドラインインターフェースの規約
- 日々のGit
- よくある質問 (FAQ)
- 用語集
- フック
- gitignore
- gitmodules
- リビジョン
- サブモジュール
- チュートリアル
- ワークフロー
- すべてのガイド...
管理
低レベルコマンド
- 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バンドルフォーマットは、参照と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フォーマットにのみ存在し、バンドルを正しく読み取るために必要な機能を示します。
-
「前提条件」は、バンドルに含まれておらず、バンドルのデータを使用するために、バンドルのリーダーが既に持っていなければならないオブジェクトをリストします。バンドルに格納されているオブジェクトは、前提条件オブジェクトおよびそこから到達可能なもの(例えば、バンドル内のツリーオブジェクトは、前提条件から到達可能なBLOBを参照できる)を参照したり、前提条件オブジェクトに対するデルタとして表現したりできます。
-
「参照」は、履歴グラフの先端、つまり、バンドルのリーダーがバンドルから「git fetch」できるものを記録します。
-
「パック」は、「参照」に記録されている参照を持つリポジトリから、「前提条件」にリストされているオブジェクトを指す参照を持つリポジトリにフェッチする場合に、「git fetch」が送信するパックデータストリームです。
バンドルフォーマットでは、前提条件のオブジェクトIDの後にコメントを付けることができます。これはコメントであり、特別な意味はありません。バンドルのライターはここに任意の文字列を置くことができます。バンドルのリーダーはコメントを無視しなければなりません。
機能
ネゴシエーションの機会がないため、不明な機能は *git bundle* を中止させます。
-
`object-format` は使用中のハッシュアルゴリズムを指定し、 `extensions.objectFormat` 設定値と同じ値を取ることができます。
-
`filter` は、git-rev-list[1] の `--filter` オプションと同様に、オブジェクトフィルターを指定します。結果として得られるパックファイルは、アンバンドル後に `.promisor` パックファイルとしてマークする必要があります。
GIT
git[1]スイートの一部