Expand description
Object model definitions for Git blobs, trees, commits, tags, and supporting traits that let the pack/zlib layers create strongly typed values from raw bytes.
Modules§
- blob
- In Git, a blob (binary large object) is a type of Git object that stores the contents of a file. A blob object contains the binary data of a file, but does not contain any metadata such as the file name or permissions. The structure of a Git blob object is as follows:
- commit
- The Commit object is a data structure used to represent a specific version of a project’s files at a particular point in time. In Git, the commit object is a fundamental data structure that is used to track changes to a repository’s files over time. Whenever a developer makes changes to the files in a repository, they create a new commit object that records those changes.
- note
- Git Note object implementation
- signature
- In a Git commit, the author signature contains the name, email address, timestamp, and timezone of the person who authored the commit. This information is stored in a specific format, which consists of the following fields:
- tag
- In Git objects there are two types of tags: Lightweight tags and annotated tags.
- tree
- In Git, a tree object is used to represent the state of a directory at a specific point in time. It stores information about the files and directories within that directory, including their names, permissions, and the IDs of the objects that represent their contents.
- types
- Object type enumeration plus conversions used across pack/object modules for printing, serialization, and delta bookkeeping.
- utils
- Low-level helpers shared by object encode/decode routines: varint readers, type/size parsing, and thin zlib compression wrappers tuned for Git object formats.
Traits§
- Object
Trait - The Object Trait Defines the common interface for all Git object types, including blobs, trees, commits, and tags.