title: What is the difference between "git reset" vs "git rebase"?
body: <p>I have been playing around with git (still very noob) and I wanted to know the difference between "reset" and "rebase". Is the one more powerful than the other?</p>
  
  <p>Say I wanted to delete the 3 commits in bold from the history, which one will be better to use, or should I tag it and then delete it with <code>git tag -d &lt;tagname&gt;</code>? </p>
  
  <blockquote>
    <p>17a64df 2012-06-21 | Hello uses style.css (HEAD, origin/style, master),<br>
    a6792e4 2012-06-21 | Added css stylesheet<br>
    801e13e 2012-06-21 | Added README<br>
    5854339 2012-06-21 | Added index.html<br>
    0b1dd4c 2012-06-21 | Moved hello.html to lib<br>
    55649c3 2012-06-21 | Add an author/email comment<br>
    9b2f3ce 2012-06-21 | Added an author comment<br>
    cdb39b0 2012-06-21 | Commit p tags with text (v1.1)<br>
    <b>b7b5fce 2012-06-21 | This reverts commit a6faf60631b5fbc6ee79b52a1bdac4c971b69ef8.</b> <br>
    <b>a6faf60 2012-06-21 | Revert "Oops, we didn't want this commit"</b> <br>
    <b>a006669 2012-06-21 | Oops, we didn't want this commit</b><br>
    262d1f7 2012-06-21 | Added HTML header (v1)<br>
    b1846e5 2012-06-21 | Added standard HTML page tags (v1-beta)<br>
    bf1131e 2012-06-21 | Added HI TAG <br>
    02b86d0 2012-06-21 | First Commit <br></p>
  </blockquote>