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

Re: [PATCH] Show an example of deleting commits with git-rebase.

From
MTMichael S. Tsirkin <mst@mellanox.co.il>
Date
Feb 7, 2007, 10:16 UTC
Message-ID
<20070207101624.GC20290@mellanox.co.il>
In-Reply-To
<20070205202106.GA8755@spearce.org>
Show 47 quoted lines
> Quoting Shawn O. Pearce <spearce@spearce.org>:
> Subject: [PATCH] Show an example of deleting commits with git-rebase.
> 
> This particular use of git-rebase to remove a single commit or a
> range of commits from the history of a branch recently came up on
> the mailing list.  Documenting the example should help other users
> arrive at the same solution on their own.
> 
> It also was not obvious to the newcomer that git-rebase is able to
> accept any commit for --onto <newbase> and <upstream>.  We should
> at least minimally document this, as much of the language in
> git-rebase's manpage refers to 'branch' rather than 'committish'.
> 
> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
> ---
>  Documentation/git-rebase.txt |   27 +++++++++++++++++++++++++--
>  1 files changed, 25 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
> index 0cb9e1f..977f661 100644
> --- a/Documentation/git-rebase.txt
> +++ b/Documentation/git-rebase.txt
> @@ -114,6 +114,27 @@ would result in:
>  
>  This is useful when topicB does not depend on topicA.
>  
> +A range of commits could also be removed with rebase.  If we have
> +the following situation:
> +
> +------------
> +    E---F---G---H---I---J  topicA
> +------------
> +
> +then the command
> +
> +    git-rebase --onto topicA~5 topicA~2 topicA
> +
> +would result in the removal of commits F and G:
> +
> +------------
> +    E---H'---I'---J'  topicA
> +------------
> +
> +This is useful if F and G were flawed in some way, or should not be
> +part of topicA.  Note that the argument to --onto and the <upstream>
> +parameter can be any valid commit-ish.
> +
Good clarification, a couple of comments:
- The use of <branch> is more confusing than useful in this case.
  You can always just do
	git reset --hard topicA
	git-rebase --onto topicA~5 topicA~2
  instead, correct?
- The use of ~ notation here is also more scary than clarifying.
   git-rebase --onto F H
  will be clearer I think.
-- 
MST
Previous: Shawn O. PearceNext: Jakub Narebski
Message 2 of 4 in “Show an example of deleting commits with git-rebase.”
  1. Show an example of deleting commits with git-rebase.Shawn O. Pearce, Feb 5, 2007
  2. Michael S. TsirkinFeb 7, 2007
  3. Jakub NarebskiFeb 7, 2007
  4. Andy ParkinsFeb 7, 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.