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

Re: [PATCH] rebase --fix: interactive fixup mode

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Jan 9, 2012, 08:40 UTC
Message-ID
<4F0AA7E2.9010200@alum.mit.edu>
In-Reply-To
<20120108213134.GA18671@ecki.lan>
On 01/08/2012 10:31 PM, Clemens Buchacher wrote:
Show 23 quoted lines
> Interactive rebase is frequently used not to rebase history, but to
> manipulate recent commits. This is typically done using the following
> command:
> 
>  git rebase -i HEAD~N
> 
> Where N has to be large enough such that the the range HEAD~N..HEAD
> contains the desired commits. At the same time, it should be small
> enough such that the range HEAD~N..HEAD does not include published
> commits or a merge commit. Otherwise, the user may accidentally change
> published history. Rebasing a merge commit can also have the generally
> undesirable effect of linearizing the merge history.
> 
> In order to determine a suitable range automatically, it is a reasonable
> heuristic to rebase onto the most recent merge commit. It does not
> guarantee that published commits are not included -- indeed there is no
> way to do that. But, the range is usually large enough to contain the
> desired commits. Also, this mechanism works regardless of whether or not
> branch tracking has been configured.
> 
> So instead of the above command, one can instead use the following:
> 
>  git rebase --fix
Two comments:
* The name "--fix" might be confusing because of its similarity to the
"fixup" command that can be specified in the interactive instructions file.
* I agree with you that "interactive rebase is frequently used not to
rebase history, but to manipulate recent commits".  In fact, I use
interactive rebase *only* for manipulating recent commits and
non-interactive rebase *only* for changing commits' ancestry.  I think
it is a good idea to make these two uses more distinct.  For example, it
makes me nervous that I might mis-type the <upstream> parameter when I
am trying to touch up commits and end up inadvertently rebasing the
commits onto a new parent.
Michael
-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
Previous: Clemens BuchacherNext: Neal Kreitzinger
Message 10 of 13 in “rebase --fix: interactive fixup mode”
  1. rebase --fix: interactive fixup modeClemens Buchacher, Jan 8, 2012
  2. Jakub NarebskiJan 8, 2012
  3. Clemens BuchacherJan 8, 2012
  4. Jonathan NiederJan 8, 2012
  5. Clemens BuchacherJan 8, 2012
  6. Nguyen Thai Ngoc DuyJan 9, 2012
  7. Jonathan NiederJan 9, 2012
  8. Junio C HamanoJan 8, 2012
  9. Clemens BuchacherJan 9, 2012
  10. Michael HaggertyJan 9, 2012
  11. Neal KreitzingerJan 10, 2012
  12. Thomas RastJan 9, 2012
  13. Clemens BuchacherJan 9, 2012

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.