title: git rebase for keeping most recent commit
body: <p>I have commits A, B, C and D and I need to just keep the most recent one which is D.
  I see that one way is by using <code>git rebase -i --root</code> as you can pick and squash commits. </p>
  
  <p>Although I don't understand the difference between pick and squash that much, it made my wondering that since the commits are incremental thus commit D includes all changes in between, why do you have to go through <code>git rebase</code> for keeping the most recent commit and not just delete the rest of the commits?</p>
  
  <p>Or am I missing something fundamental about git? Can you have commits that are unrelated between each other? i.e someday use commit B and in another situation use the most recent commit D?</p>