セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット作成
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
Eメール
外部システム
サーバー管理
ガイド
- 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
ABNF記法
プロトコル文書内では、RFC 5234で記述されているABNF記法が使用されます。ただし、以下の置換コア規則が適用されます
HEXDIG = DIGIT / "a" / "b" / "c" / "d" / "e" / "f"
また、以下の共通規則も定義します。
NUL = %x00 zero-id = 40*"0" obj-id = 40*(HEXDIGIT) refname = "HEAD" refname /= "refs/" <see discussion below>
refnameは「refs/」で始まり、git-check-ref-formatコマンドの検証規則に違反しない階層的なオクテット文字列です。具体的には、これらは
-
これらは階層的な(ディレクトリ)グループ化のためにスラッシュ
/
を含むことができますが、スラッシュで区切られたどのコンポーネントもドット.
で始めることはできません。 -
これらは少なくとも1つの
/
を含まなければなりません。これにより、heads/
、tags/
などのカテゴリの存在が強制されますが、実際の名前は制限されません。 -
これらはどこにも連続する2つのドット
..
を持つことはできません。 -
これらはASCII制御文字(つまり、値が\040未満のバイト、または\177
DEL
)、スペース、チルダ~
、キャレット^
、コロン:
、疑問符?
、アスタリスク*
、または開き角括弧[
をどこにも含むことはできません。 -
これらはスラッシュ
/
またはドット.
で終わることはできません。 -
これらはシーケンス
.lock
で終わることはできません。 -
これらはシーケンス
@{
を含むことはできません。 -
これらは
\\
を含むことはできません。
pkt-line フォーマット
ペイロードの大部分(すべてではないが)はpkt-lineを中心に記述されています。
pkt-lineは可変長のバイナリ文字列です。行の最初の4バイトであるpkt-lenは、行の合計長を16進数で示します。pkt-lenには、長さの16進数表現を含むために使用される4バイトが含まれます。
pkt-lineはバイナリデータを含むことがあります。したがって、実装者はpkt-lineの解析/書式設定ルーチンが8ビットクリーンであることを保証しなければなりません。
非バイナリ行はLFで終端されるべきであり、存在する場合は合計長に含めなければなりません。受信側は、非バイナリデータを含むpkt-lineが末尾のLFを含むか否かにかかわらず、同じように扱わなければなりません(LFが存在する場合は削除し、LFがない場合は不満を言わない)。
pkt-lineのデータコンポーネントの最大長は65516バイトです。実装は、長さが65520バイト(ペイロード65516バイト + 長さデータ4バイト)を超えるpkt-lineを送信してはなりません。
実装は空のpkt-line(「0004」)を送信すべきではありません。
長さフィールドが0(「0000」)のpkt-lineは、flush-pktと呼ばれ、特殊なケースであり、空のpkt-line(「0004」)とは異なる方法で処理されなければなりません。
pkt-line = data-pkt / flush-pkt data-pkt = pkt-len pkt-payload pkt-len = 4*(HEXDIG) pkt-payload = (pkt-len - 4)*(OCTET) flush-pkt = "0000"
例 (C形式文字列)
pkt-line actual value --------------------------------- "0006a\n" "a\n" "0005a" "a" "000bfoobar\n" "foobar\n" "0004" ""
GIT
git[1] スイートの一部