public inbox for git@vger.kernel.org
 help / color / mirror / Atom feed
* Contradictory git help rebase
@ 2025-07-21 19:57 Rodney Bates
  2025-07-21 20:29 ` Nico Williams
  0 siblings, 1 reply; 2+ messages in thread
From: Rodney Bates @ 2025-07-21 19:57 UTC (permalink / raw)
  To: git

The text and an example in the output of git help rebase seem to contradict about
which branch gets changed by git rebase master topic.  Here is an edited version
of the output, with irrelevant stuff omitted and relationships made specific.

NAME
        git-rebase - Reapply commits on top of another base tip

SYNOPSIS
        git rebase
                                                 [<upstream> [<branch>]]

In the example command below, <upstream> is master and <branch> is topic.


        If <branch> is specified, git rebase will perform an automatic git switch <branch> before doing anything else.
        Otherwise it remains on the current branch.

Current branch is now <branch>=topic.

        If <upstream> is not specified ... (irrelevant)


        All changes made by commits in the current branch (=topic) but that are not in <=upstream> (master) are saved to a temporary area.

        The current branch is reset to <upstream>,

Current branch is now <upstream>=master.

        The commits that were previously saved into the temporary area are then reapplied to the current branch (master), one by
        one, in order.

I.e., master is changed, topic is not.


        Assume the following history exists and the current branch is "topic":

                      A---B---C topic
                     /
                D---E---F---G master

        From this point, the result of either of the following commands:


            git rebase master topic

        would be:

                              A'--B'--C' topic
                             /
                D---E---F---G master

But this diagram shows topic changed, master not.


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Contradictory git help rebase
  2025-07-21 19:57 Contradictory git help rebase Rodney Bates
@ 2025-07-21 20:29 ` Nico Williams
  0 siblings, 0 replies; 2+ messages in thread
From: Nico Williams @ 2025-07-21 20:29 UTC (permalink / raw)
  To: Rodney Bates; +Cc: git

On Mon, Jul 21, 2025 at 02:57:37PM -0500, Rodney Bates wrote:
> The text and an example in the output of git help rebase seem to contradict about
> which branch gets changed by git rebase master topic.  Here is an edited version
> of the output, with irrelevant stuff omitted and relationships made specific.
> 
> NAME
>        git-rebase - Reapply commits on top of another base tip
> 
> SYNOPSIS
>        git rebase
>                                                 [<upstream> [<branch>]]
> 
> In the example command below, <upstream> is master and <branch> is topic.
> 
> 
>        If <branch> is specified, git rebase will perform an automatic git switch <branch> before doing anything else.
>        Otherwise it remains on the current branch.
> 
> Current branch is now <branch>=topic.
> 
>        If <upstream> is not specified ... (irrelevant)
> 
> 
>        All changes made by commits in the current branch (=topic) but that are not in <=upstream> (master) are saved to a temporary area.
> 
>        The current branch is reset to <upstream>,
> 
> Current branch is now <upstream>=master.

No, that's not correct.  "The current branch is reset to <upstream>"
means that the current branch's head commit is reset to the same as
<upstream>'s.  That's what resetting a branch means: it means changing
the commit that the branch points to.

You misinterpreted "[t]he current branch is reset to <upstream>" to mean
"the current workspace's branch is changed to be <upstream>", but this
is wrong.

"Reset" is confusing, so it's no surprise that it confused you.

>        The commits that were previously saved into the temporary area are then reapplied to the current branch (master), one by
>        one, in order.
> 
> I.e., master is changed, topic is not.
>
> [...]
>
> But this diagram shows topic changed, master not.

No, because you misunderstood what reset means.

Nico
-- 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-07-21 20:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-21 19:57 Contradictory git help rebase Rodney Bates
2025-07-21 20:29 ` Nico Williams

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox