git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git rebase --skip

From
Andreas Ericsson <ae@op5.se>
Date
Nov 8, 2007, 10:32 UTC
Message-ID
<4732E5A8.3020101@op5.se>
In-Reply-To
<20071108102412.GA31187@atjola.homenet>
Björn Steinbrink wrote:
Show 39 quoted lines
> On 2007.11.07 22:23:10 -0500, Jeff King wrote:
>> On Wed, Nov 07, 2007 at 11:21:05PM +0100, Mike Hommey wrote:
>>
>>> I use git-rebase quite regularly, and I haven't used git-rebase --skip
>>> after a failed merge without first resetting the working tree. I was
>>> wondering if it wouldn't make sense to automatically do the reset when
>>> running git-rebase --skip.
>> I have often been annoyed by this behavior, too, and I can't think of
>> any situation where you _wouldn't_ want the reset to happen.  But I
>> would be more comfortable hearing confirmation from others that they
>> can't think of such a situation.
> 
> Let's take this history:
> 
>       C---D---E topic
>      /
>     A---B master
> 
> You then do:
> git rebase master topic
> 
> Now D causes conflicts, because B did a similar change, but not quite
> the same, maybe having a bug. So you want to keep parts of D, but it's
> no longer the same commit semantically and the original commit message
> would be bogus. So you resolve the conflicts and do:
> 
> git commit
> git rebase --skip
> 
> Because you replaced D with a new different commit, instead of really
> just rebasing it. With plain --continue, you'd have to go back and fix
> the commit message once the rebase is complete. And --continue after the
> commit is a no-go, too, because rebase will complain that there's
> nothing left to produce the rebased D commit.
> 
> And now imagine that you forget to commit but instead just --skip.
> Ouch, all the work is lost, time to restart the rebase. With the current
> behaviour, rebase won't just throw away your stuff.
> 

How about if the state to skip was stashed, the patch reapplied and the differences compared. If they were identical, go ahead and force the reset --hard, otherwise abort. That way, --skip will dwim only when it's safe, and all the lost work can be automagically created by just re-applying the patch again?

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Previous: Björn SteinbrinkNext: Björn Steinbrink
Message 6 of 20 in “git rebase --skip”
  1. Mike HommeyNov 7, 2007
  2. Johannes SchindelinNov 7, 2007
  3. Jeff KingNov 8, 2007
  4. Jakub NarebskiNov 8, 2007
  5. Björn SteinbrinkNov 8, 2007
  6. Andreas EricssonNov 8, 2007
  7. Björn SteinbrinkNov 8, 2007
  8. Jeff KingNov 8, 2007
  9. Junio C HamanoNov 8, 2007
  10. Björn SteinbrinkNov 9, 2007
  11. Jeff KingNov 9, 2007
  12. Johannes SchindelinNov 9, 2007
  13. J. Bruce FieldsNov 9, 2007
  14. J. Bruce FieldsNov 9, 2007
  15. Jeff KingNov 9, 2007
  16. Daniel BarkalowNov 8, 2007
  17. Mike HommeyNov 8, 2007
  18. Mike HommeyNov 8, 2007
  19. Johannes SchindelinNov 8, 2007
  20. Do git reset --hard HEAD when using git rebase --skipMike Hommey, Nov 8, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.