"Robert P. J. Day" <rpjday@xxxxxxxxxxxxxx> writes: > i *think* i know the answer to this based on man page and reading > the code, but i just want to verify that i'm not missing any subtlety. > ... > "If <branch> is specified, git rebase will perform an automatic git > checkout <branch> before doing anything else. Otherwise it remains on > the current branch." Yes, but with a caveat ;-) At least, the original scripted version of "git rebase" both designed and implemented the final extra "rebase this one, not the current branch" argument as a pure short-hand for lazy people (like me, who wanted to have such a feature and made it so) to be exact equivalent to "checkout before doing anything else". Which means that HEAD@{} reflog would record such an event as "checkout that switched to the branch", and it would have affected the computation needed if you said "git checkout @{-1}" after the rebase finished. I do not offhand know if the current verison of "git rebase" that was reimplemented in C changed the behaviour, though.