From: Junio C Hamano Date: Mon, 04 Mar 2019 22:54:12 GMT Subject: Re: is "git rebase ... [branch]" equivalent to first "git checkout [branch]"? Message-ID: In-Reply-To: "Robert P. J. Day" 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 is specified, git rebase will perform an automatic git > checkout 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.