Mike Hommey <mh@xxxxxxxxxxxx> writes: > So I now have: > > A---G > \---B---C---D---E > \---F > > If I do the dumb thing, which is to do `git rebase master E` and `git > rebase master F`, I end up with: > > A---G---B'---C'---D'---E' > \---B"---C"---D"---F' > What people seem to do is to teach the branch that ends with F that its upstream is the local branch that ends with E, so that they can be lazy when rebasing a branch that knows its upstream. I suspect that you would end up with A---G---B'--C'--D'--E'--F' instead if it is done naively, but if you really care that the branch that ends with F does not have E, you presumably want to have the branch that ends at D its own identity, so (1) 'master' or whatever that used to end at A and now its tip is at G; (2) the branch that ends at D whose upstream is 'master'; (3) the branch that ends at E whose upstream is (2); and (4) the branch that ends at F whose upstream is (2). I personally do not do that, though, because you'd need to remember the order in which these three branches must be rebased (i.e. (2) must be done first before rebasing (3) and (4) in any order).