GITFORMAT-COMMIT-GRAPH(5) Git GITFORMAT-COMMIT-GRAPH(5) (NAME) gitformat-commit-graph - (commit-graph) (SYNOPSIS) $GIT_DIR/objects/info/commit-graph $GIT_DIR/objects/info/commit-graphs/* (DESCRIPTION) (commit-graph) (OID) : o (generation number) . o (root tree OID). o . o . o (Bloom filter) ( ). OID . (1 << 30) + (1 << 29) + (1 << 28) - 1 ( . ) . (COMMIT-GRAPH FILES HAVE THE FOLLOWING FORMAT) <<>> (chunks) . . (network byte order) . (HEADER): : : {'C', 'G', 'P', 'H'} : . (Hash Version): (H) : 1 => SHA-1 2 => SHA-256 commit-graph . (C) (B): (H*B) . (CHUNK LOOKUP): (C + 1) * 12 : (chunk id) . 0 . . ( .) . CHUNK LOOKUP linkgit:gitformat-chunk[5] . . . (CHUNK DATA): OID Fanout (ID: {O, I, D, F}) (256 * 4 bytes) i F[i] OID i . F[255] (N) . OID Lookup (ID: {O, I, D, L}) (N * H bytes) OID . Commit Data (ID: {C, D, A, T }) (N * (H + 16) bytes) o H OID . o i . 0x70000000 . Extra Edge List . o ( ) (EPOCH) . . Generation Data (ID: {G, D, A, 2 }) (N * 4 bytes) [Optional] o . o () (Generation Data Overflow) . o commit-graph (split commit-graph chains) . Generation Data Overflow (ID: {G, D, O, 2 }) [Optional] o . o . Extra Edge List (ID: {E, D, G, E}) [Optional] n (octopus merges) . . . . Bloom Filter Index (ID: {B, I, D, X}) (N * 4 bytes) [Optional] o i BIDX[i] i () (lexicographic) . i BIDX[i-1] BIDX[i] ( ) BIDX[-1] . o BDAT BIDX . Bloom Filter Data (ID: {B, D, A, T}) [Optional] o : o . murmur3 https://en.wikipedia.org/wiki/MurmurHash#Algorithm seed 0x293ae76f 0x7e646e2 https://doi.org/10.1007/978-3-540-30494-4_26 <> . char >= 0x80 . o . o b . n n*b . o . o : . o BDAT BIDX . Base Graphs List (ID: {B, A, S, E}) [Optional] H B commit-graph . i OID Lookup i . B . (TRAILER): HASH H . (HISTORICAL NOTES) (GDA2) (GDO2) 2 <> <> . . (GIT) git(1) Git 2.55.0 2026-06-29 GITFORMAT-COMMIT-GRAPH(5)