title: Does every commit creates a new tree object in git?
body: <p>I am learning about git internals and how git object model works "under the hood".</p>
  
  <p>If I change some file and commit it in local git repository, then a new git <code>commit object</code> will be created. Each commit object has associated <code>tree object</code> with it. Each tree object contains SHA1 of files (blobs) it points to. So does this mean that every new commit (assuming there is some file change in it) will always generate a new tree object (which will have different SHA1 than all previous trees even though they point to the same directory on file system)?</p>
  
  <p>Is my reasoning about this correct?
  Also, is it possible to commit without file changes? In that case there wouldn't be need for a new <code>tree object</code> but I don't know if this type of commits are possible in git.</p>