• Directly refer to commits using SHA-1 hashes. Hashes are like unique IDs for commits. They can be accessed using git log
  • Refs are user-friendly aliases of commit hashes. It is another way of referencing commits
    • Git uses refs to represent its internal branches and repos tags
    • Refs are stored as plain text files in .git/refs/ depending on whether they represent branches, tags, or remotes. A given ref holds a commit hash
      • The heads/ directory contains all refs for local branches
      • The tags/ directory stores all refs for tags
      • The remotes/ directory contains a list of all remote repositories