اندرونی طور پر، Git ایک content-addressable object store ہے — یہ سب کچھ objects (blobs، trees، commits، tags) کے طور پر محفوظ کرتا ہے جو اپنے SHA-1 hash سے شناخت کیے جاتے ہیں۔ اس ماڈل کو سمجھنا Git کو سمجھنا آسان بناتا ہے اور وضاحت کرتا ہے کہ اس کے operations کیوں اس طرح برتاؤ کرتے ہیں۔
Git ایک content-addressable object store ہے
Git stores 4 types of OBJECTS, each identified by the SHA-1 HASH of its content:
BLOB → file CONTENTS (just the data, no filename)
TREE → a directory: maps names → blobs (files) and trees (subdirs) + permissions
COMMIT → a snapshot: points to a TREE (the root) + parent commit(s) + author/message
TAG → an annotated tag object (points to a commit, with metadata)
→ Content-addressable: an object's ID IS the hash of its content (same content = same hash).
