From: Carlos Martín Nieto Date: Tue, 17 Jul 2012 10:55:35 GMT Subject: Re: git rebase -i does not rebase if all lines are removed Message-ID: <1342522535.20671.7.camel@centaur.cmartin.tk> In-Reply-To: On Tue, 2012-07-17 at 13:46 +0300, Orgad and Raizel Shaneh wrote: > Make a commit on top of master. > > git rebase -i origin/master > > Remove the commit. > > Git prints "Nothing to do" and does not rebase. > > Running 'git rebase -i' when there are no local commits has 'noop' in > the first line, and with it the rebase is successful. Why is this > 'noop' mandatory? If you read the instructions, the last line says # However, if you remove everything, the rebase will be aborted so if you want to do a no-op, then you need to tell it. This is the same way you abort a commit, by providing it with an empty message. But more important would be /why/ you feel that rebase -i is the tool you should be using. If you'd like to move the branch pointer back, that's what the reset command is for. rebase deals with moving commits from one base to another and optionally reordering, squashing or removing some of them. cmn