title: How does git status work internally?
body: <p>From the <a href="https://git-scm.com/book/en/v2/Git-Internals-Git-Objects" rel="noreferrer">git object model</a>, files and folders are saved to locations in the .git folder by their sha1 hash. </p>
  
  <p>How does git internally know if a file has been deleted, added, or edited (specifically, how does it compute the changes you see when you type <code>git status</code>)? Does the system determine this information purely from the sha1?</p>