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

Re: rebase on remote branch

From
DSDirk Süsserott <newsletter@dirk.my1.cc>
Date
Apr 12, 2011, 18:08 UTC
Message-ID
<4DA49504.3030208@dirk.my1.cc>
In-Reply-To
<6b4c9a4d-075c-4805-8fad-bacecb24e9de@w7g2000pre.googlegroups.com>
Am 12.04.2011 19:17 schrieb allstars:
Show 63 quoted lines
> hi
> first I know rebase on remote branch is bad idea
> so I am here asking for suggestions if you can kindly provide some
>
> in my server I got two branches , master and release ,
> and release is branched from master
>
> 0---0---0---0-- master
>          \
>             0---0-- release
>
> our work mainly focus on master, so we will keep committing code to
> master
> for some reasons, release branch is for others, and it has some
> commits that master doesn't have
>
> and now in every week, we have some stable code in master branch
> so we also want the release branch also has these new code
>
> 0---0---0---0---*---*---* master
>          \
>             0---0-- release
>
> how should we do now??
>
> currently our way is doing rebase in our local pc
>
> 0---0---0---0---*---*---* master
>                                      \
>                                        0'---0'-- release
> in release branch
> $>git rebase master
>
> but in that way when we want to push the release branch back
> it will fail because it's non-fast-forward updates
> so we doing git push -f origin release to force it to 'rebase' on our
> remote server
>
>
> or if we use cherry-pick model
>
> 0---0---0---0---*---*---* master
>          \
>             0---0---*---*---* release
>
> but in this case , how do we do it in script?
> I mean, how do we know we need to start cherry-pick from the 1st '*'
> to the 3rd '*' in master
>
> more precisely , if A to E represents the commit SHA1
>
> 0---0---0---0---A---B---C---D---E master
>          \
>             0---0---A'---B'---C' release
>
> the 3 cherry-picks A' B' C' on release branch won't have the same SHA1
> for A B C in master
> how can we know effectively we need to start cherry-pick from C to E
> on master
>
>
> thanks
>
Hi,
if you have:
0---0---0---X---A---B---C---D---E master
          \
             0---0 release
then you could do
$ git rebase --onto release X master
to get this:
0---0---0---X---A---B---C---D---E master
          \
             0---0---A'---B'---C'---D'---E' release

IOW, it rebases everything between X (w/o X itself) and master (which is E, including E) onto release.

Or, with
$ git rebase --onto release X C
you would get:
0---0---0---X---A---B---C---D---E master
          \
             0---0---A'---B'---C' release
HTH.
     Dirk
Previous: allstarsNext: Antriksh Pany
Message 2 of 3 in “rebase on remote branch”
  1. allstarsApr 12, 2011
  2. Dirk SüsserottApr 12, 2011
  3. Antriksh PanyApr 12, 2011

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.