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

Re: rebase problem

From
Vincent van Ravesteijn <vfr@lyx.org>
Date
Mar 17, 2012, 16:11 UTC
Message-ID
<4F64B7A9.20805@lyx.org>
In-Reply-To
<OF03E8C640.7C5AF318-ONC12579C4.004F7449-C12579C4.004FCF5C@transmode.se>
Op 17-3-2012 15:31, Joakim Tjernlund schreef:
Show 44 quoted lines
> Vincent van Ravesteijn<vfr@lyx.org>  wrote on 2012/03/17 14:30:42:
>> Op 17-3-2012 13:57, Joakim Tjernlund schreef:
>>> A co-worker this on our local u-boot repo:
>>>     git checkout master
>>>     git fetch denx/master
>>>     git merge denx/master
>>> <resolve conflicts>
>>>     git commit
>>>     ...
>>>     git commit
>>> Now u-boot is working again
>>> then update to latest u-boot so:
>>>     git fetch denx/master
>>>     git rebase denx/master
>>> Now it is a mess, that rebase seems to start from way back as a
>>> staring reference, not from the last merge shown above.
>>> I guess I forgotten how git works, what did go wrong?
>>>
>>>     Jocke
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe git" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> The situation is like this:
>>
>>    master - C - o - o - D - o - o - o - A
>>                        /
>>    denx/master- - - - o - o - o - o - B
>>
>> Now, you ask to rebase master (A) onto denx/master (B). If master would
>> have started from D, it would indeed apply the commits D -- A on top of
>> B. In your case, however, master already had a lot of commits that were
>> not in denx/master: C -- D  (including the merge resolution). So it will
>> also apply C -- D on top of  B.
> Thanks, this makes sense. How do I get from above to
>
>     master - C - o - o - D - o - o - o - A
>                         /
>     denx/master- - o - B
>
>
> Jocke
>
Don't you just want to merge with denx/master again ?
    master - C - o - o - D - o - o - o - A
                        /               /
    denx/master- - o - o - o - o - o - B
In this way you pull in the new commits from denx/master.

Of course you can rework your history such to obtain what you drew above, but this means you need to rewrite some of the history, which you probably don't want to do if you share this code with colleagues. But well, if you really want:

git checkout D~1 git merge B git rebase --onto HEAD D master

Vincent
Previous: Joakim TjernlundNext: Joakim Tjernlund
Message 4 of 5 in “rebase problem”
  1. Joakim TjernlundMar 17, 2012
  2. Vincent van RavesteijnMar 17, 2012
  3. Joakim TjernlundMar 17, 2012
  4. Vincent van RavesteijnMar 17, 2012
  5. Joakim TjernlundMar 17, 2012

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.