Re: rebase on remote branch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 12.04.2011 19:17 schrieb allstars:
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















--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]