GITPROTOCOL-CAPABILITIES(5) (NAME) gitprotocol-capabilities - 0 1 (SYNOPSIS) (DESCRIPTION) (pack protocol) . gitprotocol-v2(5) . () (SHOULD) . receive-pack upload-pack (reference) NUL . . . <<>> (MUST NOT) . <<>> (MUST) . <<>> (MUST NOT) . <<>> . atomic report-status report-status-v2 delete-refs quiet push-cert receive-pack ( / push) . ofs-delta side-band-64k upload-pack receive-pack . agent session-id . upload-pack ( / fetch) . MULTI_ACK multi_ack (common base) wants have "ACK obj-id continue" . . have DAG "done" . multi_ack have --date-order . have . : +---- u ---------------------- x / +----- y / / a -- b -- c -- d -- E -- F \ +--- Q -- R -- S x y have F,S F S . "have d" "ACK d continue" ( c-b-a ) x . S-R-Q a . multi_ack c-b-a S-R-Q . MULTI_ACK_DETAILED multi_ack . "Packfile Negotiation" gitprotocol-pack(5) . NO-DONE smart HTTP . multi_ack_detailed no-done "ACK obj-id ready" (pack) . no-done smart HTTP "done" . no-done (latency) . THIN-PACK << >> (thin pack) ( ). <<>> (thicken) . upload-pack thin-pack . thin-pack . <<>> (MUST NOT) thin-pack thin pack . receive-pack no-thin . no-thin <<>> (MUST NOT) . . receive-pack thin pack receive-pack thin pack . no-thin receive-pack . SIDE-BAND, SIDE-BAND-64K (multiplexed) (packfile) . (mutually exclusive) . side-band-64k . packfile side_band side_band_64k (stream) . pkt-line (stream code) . : 1 - (pack data) 2 - (progress messages) 3 - (fatal error message) "side-band-64k" . side-band (payload) . side-band-64k . <<>> (MUST) "side-band" "side-band-64k" . <<>> (MUST) . OFS-DELTA PACKv2 obj-id (offset) . OBJ_OFS_DELTA ( ) packfile . AGENT agent=X X . agent=Y (agent) ( agent <<>> ). X Y ( 32 < x < 127) "package/version" ( "git/1.8.3.1") . <<>> (MUST NOT) . OBJECT-FORMAT (hash algorithm) . (ref advertisement) . . . SHA-1 . SYMREF (symbolic ref) "symref=HEAD:refs/heads/master" HEAD master . symref . HEAD <<>> (SHOULD) HEAD . <<>> (MAY) . SHALLOW "deepen" "shallow" "unshallow" fetch-pack/upload-pack (shallow clones) . DEEPEN-SINCE "deepen-since" fetch-pack/upload-pack . "rev-list --max-age=" . "deepen-since" "deepen" . DEEPEN-NOT "deepen-not" fetch-pack/upload-pack (revision) . "rev-list --not " . "deepen-not" "deepen" "deepen-since" . DEEPEN-RELATIVE "deepen" . "depth" . NO-PROGRESS "git clone -q" (side band 2) . << sideband >>. . INCLUDE-TAG include-tag (annotated tags) . . . <<>> (MAY) include-tag . include-tag refs/tags/* . include-tags <<>> (MUST) . <<>> (MUST) include-tag . <<>> (SHOULD) fetch include-tag . include-tag <<>> (SHOULD) . REPORT-STATUS receive-pack report-status packfile . (pushing client) . . gitprotocol-pack(5) . REPORT-STATUS-V2 report-status-v2 "option" report-status (hook) "proc-receive" . "proc-receive" (pseudo-reference) new-oid old-oid report-status . gitprotocol-pack(5) . DELETE-REFS delete-refs (zero-id) . zero-id . QUIET receive-pack quiet . send-pack ( push -q stderr tty ) quiet . ATOMIC atomic (atomic pushes) . . PUSH-OPTIONS push-options push packfile . pre-receive post-receive push . ALLOW-TIP-SHA1-IN-WANT upload-pack fetch-pack "want" upload-pack . "sha1" . object-format . ALLOW-REACHABLE-SHA1-IN-WANT upload-pack fetch-pack "want" upload-pack . "sha1" . object-format . PUSH-CERT= receive-pack push push . send-pack <<>> (MUST NOT) push-cert receive-pack . FILTER upload-pack filter fetch-pack "filter" (partial clone) (partial fetch) packfile . SESSION-ID= (session ID) . . . packet-line . trace2 ( api-trace2[1] ) . (GIT) git(1) (NOTES) 1. api-trace2 file:///usr/share/doc/git-doc/technical/api-trace2.html Git 2.55.0 2026-06-29 GITPROTOCOL-CAPABILITIES(5)