Pierre-Luc Loyer <pierre-luc.lo...@bhvr.com> writes:

> From the documentation it says that <branch> (which is HEAD) will be checked 
> out before doing anything and that upon completion, <branch> will be the 
> current branch. However, this doesn't seem to happen. In fact, it seems more 
> like the following is happening during the rebase:
> 1) detach HEAD
> 2) rebase
> 3) reattach to <branch>

You do not have to say "HEAD" for "<branch>", if you are rebasing
the current branch.  Either leave it unsaid, or name the branch.

Passing "HEAD" (or any of its variants that names the exact commit
at the tip of the current branch, without using the name of the
current branch, e.g. "master^0") as the "branch to rebase" is an
advanced technique to use when you want to avoid messing with the
branch itself.  It is deliberate that the HEAD is left detached.

You'd (once you learn Git sufficently and got comfortable with
working on a detached HEAD, that is) often find yourself doing
things like this:

1. rebase temporarily on detached HEAD

    $ git rebase -i HEAD~2 HEAD ;# amend the tip two

2. double check the result and convince yourself that it is better
   than the original

    $ git diff master HEAD

    $ git log master.. >updated
    $ git log -2 master >original
    $ diff -u original updated

3-a. once satisfied, update the branch

    $ git checkout -B master

3-b. or abandon if the result is undesirable.

    $ git checkout master
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to