git rebase -i does not rebase if all lines are removed

3 messages, 3 authors, 2016-06-15 · open the first message on its own page

git rebase -i does not rebase if all lines are removed

From: Orgad and Raizel Shaneh <hidden>
Date: 2016-06-15 22:54:16

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?

- Orgad

Re: git rebase -i does not rebase if all lines are removed

From: Carlos Martín Nieto <hidden>
Date: 2016-06-15 22:54:16

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

Re: git rebase -i does not rebase if all lines are removed

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:54:16

Am 7/17/2012 12:55, schrieb Carlos Martín Nieto:
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.
Perhaps because that's not what the OP wanted to do?

Sometimes it happens that you rebase a bunch of commits, and only a
handful remains because the others are already in upstream. Looking at
each remaining one closely, you decide that they don't have to be rebased
(maybe because slightly modified versions are in upstream), so you remove
them one by one, and you end up with an empty list.

This has happened to me at one point, and writing "noop" after the list is
empty is a minor nuisance. But I am not complaining. Because being able to
abort an interactive rebase by clearing the list is much more important.

-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help