Hi,
I've been tracking a project, via the master branch, customizing certain aspects and applying my changes into a separate local branch B. In the mean time, there is this new remote branch origin/release_2.1, that was created for releasing a certain version. It happened that I merge entirely that master branch into my local branch, periodically, in order to get the latest change sets. It also happens in that projects, that commits from branch C get merged into the project's origin/master.
I'd like to do the following: Take all the those changes I made against origin/master, checkout a local branch based on origin/release_2.1 and apply them on it. This way I can get my customizations re-based against that particular branch (stream) instead of origin/master being the parent/upstream.
Is it possible to achieve that? does it involves a kind of git rebasing (--onto ?). So far, I used exclusively a merge flow to maintain my private branch B in sync with origin/master and that right now that code base is more recent than origin/release_2.1.
Here is the structure, in ASCII, of the project: (best viewed with a proportional font)
origin/master | | | | | | | | | | | +--|--\ (sometimes commits in origin/release_2.1 go into origin/master) | | | | | | | | | | | | | | | | + | (git merge origin/master into my_private_branch) | /| | + | | | | | | | | | + | (git merge origin/master into my_private_branch) | /| | + | | | | | origin/release_2.1 | | / +--|-/ | | | | my_private_branch (git checkout -b) | / +/ | |
Regards,
-Ilyes