We use Git for out repo. I've no idea how but my team's latest history ended up like this:
0 master
\
1-2-3-4-5-6-7 branch1 & branch2
Notice how (thankfully) nobody has merged this with our master branch yet. Now, I want to split that to end up like this:
5-6-7 branch2
/ \
0 - - - (*) - - (*) master
\ /
1-2-3-4 branch1
I'm not experienced with Git and I'd like to know how to achieve that
Assuming both branch1
and branch2
are pointing at 7, the safer option is to create another branch n_branch1
and do the following:
git checkout <sha_4>
# you'll now be in a detached head
git checkout -b n_branch1
# Now go to master and merge n_branch1
git checkout master
git merge n_branch1
# Once branch1 commits are merged, apply branch2 on top of them.
git checkout branch2
git rebase master
Note: You could also reuse branch1
by reverting it to 4 (see here).