git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Rebasing a merged branch

From
PBPeter Baumann <waste.manager@gmx.de>
Date
Jul 10, 2010, 07:19 UTC
Message-ID
<20100710071955.GA12251@m62s10.vlinux.de>
In-Reply-To
<20100710065541.GB15600@foursquare.net>
On Sat, Jul 10, 2010 at 02:55:41AM -0400, Chris Frey wrote:
Show 42 quoted lines
> On Thu, Jul 08, 2010 at 12:52:08PM +0100, Peter Krefting wrote:
> > Hi!
> > 
> > If I slightly modify the example from the git-rebase manual page to look 
> > like this:
> > 
> >   o---o---o---o  master
> >          \
> >           o---o---o---o---o  topicA
> >            \     /
> >             A---B---C---D  topicB
> > 
> > (topicA has merged "B" into its history; its first-parent from the line of 
> > "o"s).
> > 
> > If I now do a "git rebase --onto master topicA topicB", I only get commit C 
> > and D, as it sees A and B as being part of both branches.
> > 
> > Is there a way to make git rebase pick up A, B, C and D (and only them)?
> > 
> > I.e., I would like "all commits on topicB which are not in topicA's 
> > --first-parent history".
> 
> 
> I'm no expert on rebase --onto, but aren't you trying to rebase so that
> the tree looks like this afterward?
> 
> 
>    o---o---o---o  master
>             \   \
>              \   A---B---C---D  topicB
>               \
>                o---o---o---o---o  topicA
>                 \     /
>                  A---B
>  
> In which case, won't this work?
> 
> 	git checkout topicB
> 	git rebase master
> 
> - Chris

No, this won't work. You will also rebase A^ (the o) commit in both branches A and B.

AFAIK doing the following should do the trick:

git checkout topicB git rebase --onto master A~1 topicB

Previous: Chris Frey
Message 3 of 3 in “Rebasing a merged branch”
  1. Peter KreftingJul 8, 2010
  2. Chris FreyJul 10, 2010
  3. Peter BaumannJul 10, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.