title: How to assign a Git SHA1's to a file without Git?
body: <p>As I understand it when Git assigns a SHA1 hash to a file this SHA1 is unique to the file based on its contents. </p>
  
  <p>As a result if a file moves from one repository to another the SHA1 for the file remains the same as its contents have not changed. </p>
  
  <p>How does Git calculate the SHA1 digest? Does it do it on the full uncompressed file contents? </p>
  
  <p>I would like to emulate assigning SHA1's outside of Git.</p>