Re: Git rebase aggravation
From: Thomas Rast <hidden>
Date: 2016-06-15 22:46:16
Myxz Ptlk wrote:
1) Rebase master into zoo. 2) Merge zoo into master.
You may want to consider a merge and topic branch based workflow. man
gitworkflows has some pointers.
For the rest of the discussion let's assume that your history looks
like
*---*---*---* (master)
\
\
o---o---o (zoo = origin/zoo)
Since you have tracking branches, origin/zoo should be the same as
zoo. (origin/master should exist too but isn't important for now.)
But here is what happens. I spend 3 hours inside "zoo" doing "git rebase master". I go through all the hell of reconciling 6 months of development. Then at the end, it just says that the commits now differ between local "zoo" and "origin/zoo".
Indeed, since you rewrote every commit on zoo, it now looks like
*---*---*---* (master)
| \
| \
\ o'--o'--o' (zoo)
\
o---o---o (origin/zoo)
So I figure, I will pull from "origin/zoo". Naturally, that results in a conflicted merge, which I then clear up. I commit the merge, then push everything back to the remote branch.
You're merging like this:
*---*---*---* (master)
| \
| \
\ o'--o'--o'---M (zoo)
\ /
o---o---o---------------'
(origin/zoo)
I think you can already see that you made a mess of history :-)
You should have forced the push instead. But see "recovering from
upstream rebase" in man git-rebase for information on what happens to
everyone else's work that was based on zoo.
My thinking is that if I were to attempt a new rebase of master, the beginning of what would be rebased would start from RIGHT NOW, instead of all the commits over the past 6 months. To check this, I type: git rebase master from "zoo". Lo and behold, it starts the whole process over again. I "git rebase --abort", but I am very, very confused.
Actually it's even worse: it should attempt to rebase _every_ commit
in master..zoo. If master has progressed since your original
rebase+merge, this will be both the "o" and "o'" commits above.
(Except the ones that did not conflict at all, since they'll still be
the same.)
--
Thomas Rast
trast@{inf,student}.ethz.ch Attachments
- signature.asc [application/pgp-signature] 197 bytes