Git rebase in depth
About 99.9% of the time when people talk about rebase they talk about ‘editing’ history or ‘rewriting’ history as in the first sentence of the article.<p>I find that terminology terribly misleading and when I was learning git and rebase it confused the heck out of me.<p>No commits are harmed in the operation of `git rebase`. All the commits you had in the repo before the rebase are <i>still</i> in the repo. Git rebase creates a new sequence of commits and after doing its work relocates the branch name to the tip of the new sequence but you can easily access the previous commits if need be:<p><pre><code>    $ git co feature-branch
    $ git rebase develop
    $ git co -b before-rebase-feature-branch feature-branch@{1}</code></pre>