GITFORMAT-INDEX(5) Git GITFORMAT-INDEX(5) (NAME) gitformat-index - (SYNOPSIS) $GIT_DIR/index (DESCRIPTION) (Git index format) (THE GIT INDEX FILE HAS THE FOLLOWING FORMAT) (network byte order / big-endian) . SHA-1 ( ) SHA-1 . SHA-256 SHA-256 . . o : : { 'D', 'I', 'R', 'C' } ( "dircache") : . . o ( ). o (Extensions) . . . 'A'..'Z' . o . (INDEX ENTRY) ( ()memcmp '/'). (stage) . . sparse-checkout (`core.sparseCheckoutCone` ) `extensions.sparseIndex` sparse-checkout . `040000` `SKIP_WORKTREE` . ctime (2)stat ctime (2)stat mtime (2)stat mtime (2)stat dev (2)stat ino (2)stat mode ( ) (object type) 1000 ( ) 1010 ( ) 1110 (gitlink) . 0755 0644 . gitlink 0 . uid (2)stat gid (2)stat (2)stat . (Object name) 'flags' ( ) assume-valid extended ( ) stage ( ) 0xFFF 0xFFF . ( ) "extended flag" ( ). skip-worktree ( sparse checkout) intent-to-add ( "git add -N") ( ) ( ). '/' . "." ".." ".git" ( ) . . '.' '/' ASCII NUL ( UNIX ). ( ) (prefix-compressed) ( ). N ( OFS_DELTA linkgit:gitformat-pack[5]) S NUL . N S . nul (pad) NUL . ( ) (padding) . (split index) . . (EXTENSIONS) (Cache tree) . . "" . `HEAD^{tree}` . (OID) . OID . . . . . "-1" "" . . { 'T', 'R', 'E', 'E' }. : o NUL ( ) o ASCII (entry_count) o (ASCII 32) o ASCII o (ASCII 10) o (Object name) . (invalidated) entry_count . . -1 entry_count . - (depth-first) . -- A-- ( ) A ( A) . . (Resolve undo) (conflict) (stage) . ( "git add path") (stage-0) . resolve undo ( "git checkout -m"). { 'R', 'E', 'U', 'C' }. : o NUL ( ) o (octal) NUL ( "0" ) o ( ). (Split index) . . { 'l', 'i', 'n', 'k' }. : o (shared index). $GIT_DIR/sharedindex. . . o ewah . . . o ewah . . . "1" "1" . . . . (UNTRACKED CACHE) . { 'U', 'N', 'T', 'R' }. : o NUL . . o stat $GIT_COMMON_DIR/info/exclude. " " ctime " " . o stat core.excludesFile o dir_flags ( struct dir_struct ) o $GIT_COMMON_DIR/info/exclude. (null hash) . o core.excludesFile. . o NUL (per-dir exclude file). ".gitignore" . o . NUL . o (depth-first-search) : o . o . o NUL. o / NUL. : o ewah n- n- . o ewah n- "check-only" ()read_directory_recursive n- . o ewah n- hash stat n- . o stat. n- n- "" ewah . o . n- n- "" ewah . o NUL. (FILE SYSTEM MONITOR CACHE) core.fsmonitor . { 'F', 'S', 'M', 'N' }. : o : . o ( ) : . o ( ) null: (opaque token) . . o : CE_FSMONITOR_VALID. o ewah n- n- CE_FSMONITOR_VALID . (END OF INDEX ENTRY) (EOIE) . . . { 'E', 'O', 'I', 'E' }. : o o ( ). "TREE" N "REUC" M "EOIE" : Hash("TREE" + + "REUC" + ) (INDEX ENTRY OFFSET TABLE) (IEOT) (CPU) (multi-threading) . { 'I', 'E', 'O', 'T' }. : o ( ) o : o . o (SPARSE DIRECTORY ENTRIES) sparse-checkout (cone mode) . " " (sparse index) . . { 's', 'd', 'i', 'r' } . split-index . (GIT) git(1) Git 2.55.0 2026-06-29 GITFORMAT-INDEX(5)