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

Re: [PATCH] Teach 'git pull' the '--rebase' option

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Oct 26, 2007, 09:52 UTC
Message-ID
<Pine.LNX.4.64.0710261047450.4362@racer.site>
In-Reply-To
<7v3avy21il.fsf@gitster.siamese.dyndns.org>
Hi,
On Thu, 25 Oct 2007, Junio C Hamano wrote:
Show 33 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > On Thu, 25 Oct 2007, Linus Torvalds wrote:
> >
> >> On Thu, 25 Oct 2007, Johannes Schindelin wrote:
> >> > 
> >> > This behavior is more desirable than fetch + pull when a topic 
> >> > branch is ready to be submitted.
> >> 
> >> I'd like there to be some *big*warning* about how this destroys 
> >> history and how you must not do this if you expose your history 
> >> anywhere else.
> >> 
> >> I think it's a perfectly fine history, but if you have already pushed 
> >> out your history somewhere else, you're now really screwed. In ways 
> >> that a *real* merge will never screw you.
> >> 
> >> So the "--rebase" option really is only good for the lowest-level 
> >> developers. And that should be documented.
> >
> > Fair enough.
> >
> > How about this in the man page:
> >
> > \--rebase::
> > 	Instead of a merge, perform a rebase after fetching.
> > 	*NOTE:* Never do this on branches you plan to publish!  This
> > 	command will _destroy_ history, and is thus only suitable for
> > 	topic branches to be submitted to another committer.
> 
> Nits.
> 
> (1) This "operation" will "rewrite"  history.
Okay.
Show 9 quoted lines
> (2) This is not suitable for people who publish their trees and
>     let others fetch and work off of them.
> 
>     Rebase is fine for e-mail submitting contributors as your
>     description above suggests, but as your proposed commit log
>     message said, it is also perfectly appropriate if your
>     interaction with the outside world is "fetch + rebase +
>     push".  You are not limited to "submitted to another
>     committer".

Well, originally I did not want to document it at all. But I already heard the complaints about that in my inner ear. So I documented it, sparsely, in the hope that those who do not know the implications will not dare to use it. After Linus' complaint, I tried to make this shooing away more explicit.

I do not want to go into _that_ many details here, since the place to look for it is git-rebase.txt. Probably I should have done that in the first place.

So how about this instead:
\--rebase::
        Instead of a merge, perform a rebase after fetching.
        *NOTE:* This is a potentially _dangerous_ mode of operation.  
	It rewrites history, which does not bode well when you
	published that history already.  Do _not_ use this option
	unless you have	read gitlink:git-rebase[1] carefully.
Hmm?

Ciao, Dscho

Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 32 in “Teach 'git pull' the '--rebase' option”
  1. Teach 'git pull' the '--rebase' optionJohannes Schindelin, Oct 25, 2007
  2. Linus TorvaldsOct 25, 2007
  3. Johannes SchindelinOct 25, 2007
  4. Linus TorvaldsOct 25, 2007
  5. Linus TorvaldsOct 25, 2007
  6. Junio C HamanoOct 25, 2007
  7. Johannes SchindelinOct 26, 2007
  8. Junio C HamanoNov 28, 2007
  9. Teach 'git pull' about --rebaseJohannes Schindelin, Nov 28, 2007
  10. Jonathan del StrotherNov 28, 2007
  11. Johannes SchindelinNov 28, 2007
  12. Jakub NarebskiNov 28, 2007
  13. Steven GrimmNov 28, 2007
  14. Johannes SchindelinNov 28, 2007
  15. Lars HjemliNov 28, 2007
  16. Junio C HamanoNov 28, 2007
  17. Johannes SchindelinNov 28, 2007
  18. Steven GrimmNov 28, 2007
  19. J. Bruce FieldsNov 28, 2007
  20. J. Bruce FieldsNov 28, 2007
  21. Johannes SchindelinNov 28, 2007
  22. Junio C HamanoNov 28, 2007
  23. J. Bruce FieldsNov 28, 2007
  24. Johannes SchindelinNov 29, 2007
  25. Andreas EricssonNov 29, 2007
  26. Nicolas PitreNov 29, 2007
  27. Jon LoeligerNov 28, 2007
  28. Johannes SchindelinNov 28, 2007
  29. Björn SteinbrinkDec 1, 2007
  30. Karl HasselströmDec 3, 2007
  31. Jeff KingOct 26, 2007
  32. Jeff KingOct 26, 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.