From: Johannes Schindelin Date: Wed, 04 Jul 2007 13:30:54 GMT Subject: Re: How to rebase after upstream was merged? Message-ID: In-Reply-To: <468B918E.FBCADCB9@eudaptics.com> Hi, On Wed, 4 Jul 2007, Johannes Sixt wrote: > I have this history: > > o--o--o--o--o <- origin > \ \ > x--x--x--M--x--x <- master (HEAD) > > At this point I would like to rebase to straighten the history, but it > won't let me: > > $ git rebase origin > Current branch master is up to date. I'd do something like $ git checkout -b tmp HEAD~3 $ git rebase origin $ git checkout master $ git rebase --onto tmp HEAD~2 $ git branch -d tmp > I would like to extend the check to also check for linear history. How > can I do this most efficiently? My first try is along these lines: > > test $(git rev-list origin..HEAD | wc -l) = \ > $(git rev-list --no-merges origin..HEAD | wc -l) > > Is there a better approach? I usually to test -z "$(git rev-list --parents origin..HEAD | grep " .* ")" Hth, Dscho