git rebase -i a branch onto itself

ndp picture ndp · Oct 22, 2012 · Viewed 11.6k times · Source

I had the following in my repo

Master---
     \
       Next-->Commit A.1,Commit A.2,Commit A.3 --......

I want to fix-up the A.* commits into one commit describing the feature A. I tried git rebase -i origin next, but that didn't work how I expected. Is there any way of accomplishing this?

I thought of creating a branch foo, which is essentially next, and then rebase next onto foo followed by merge/delete foo. However, this seems sloppy.

Answer

Mark Longair picture Mark Longair · Oct 22, 2012

You just need to do:

git rebase -i <COMMIT-ISH>

... where <COMMIT-ISH> is some way of referring to the commit marked Master in your diagram. If there's a branch pointing to that point (probably master or origin/master) then git log --decorate will show that.