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

Re: [PATCH/RFC] Documentation: Two more git-rebase --onto examples

From
Junio C Hamano <junkio@cox.net>
Date
Nov 5, 2006, 01:08 UTC
Message-ID
<7vbqnmwvib.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<200611042205.58212.jnareb@gmail.com>
Jakub Narebski <jnareb@gmail.com> writes:
> I asked for comments because I'm not native English speaker and I'm not
> sure about correctness of descriptions of added examples.
Ok.
> +More useful example of --onto option usage include transplanting feature
> +branch from one development branch to other, for example change to branch
> +based off "next" branch:

By "more" do you mean the following examples are more useful than the one before, or having larger number of examples adds to the usefulness of the document overall?

How about:
        Here is how you would transplant a topic branch based on one
        branch to another, to pretend that you forked the topic branch
        from the latter branch, using `rebase --onto`.
	First let's assume your 'topic' is based on branch 'next'.
        ------------
            o---o---o---o---o  master
                 \
                  o---o---o---o---o  next
                                   \
                                    o---o---o  topic
        ------------
	We would want to make 'topic' forked from branch
	'master', like this:
Show 15 quoted lines
> +------------
> +    o---o---o---o---o  master
> +        |            \
> +        |             o'--o'--o'  topic
> +         \
> +          o---o---o---o---o  next
> +------------
> +
> +We can get this using the following command:
> +
> +    git-rebase --onto master next topic
> +
> +
> +Yet another example of use for --onto option is to rebase part of
> +branch. If we have the following situation:

This looks the same as the original example for --onto; I would either drop it or replace it something of different flavor.

What I find myself doing more is to reorder without using StGIT. When I have this:

	1---2---3---4 topic
and 2 is a bit half-baked, and I would want to have:
	1---3'--4'--2' topic
I would usually do this while on "topic":
	git tag -f CG	;# "commit goal"
	git rebase --onto CG~3 CG~2 ;# plant 3 4 on top of 1
        git cherry-pick CG~2
	git diff CG ;# verify that the result matches
In ascii art, that is:
	  3'--4'
	 /
	1---2---3---4 CG
then
	  3'--4'--2' topic
	 /
	1---2---3---4 CG
Previous: Jakub NarebskiNext: Jakub Narebski
Message 2 of 8 in “Documentation: Two more git-rebase --onto examples”
  1. Documentation: Two more git-rebase --onto examplesJakub Narebski, Nov 4, 2006
  2. Junio C HamanoNov 5, 2006
  3. Jakub NarebskiNov 5, 2006
  4. Documentation: Transplanting branch with git-rebase --ontoJakub Narebski, Nov 6, 2006
  5. Junio C HamanoNov 6, 2006
  6. Jakub NarebskiNov 6, 2006
  7. Carl WorthNov 6, 2006
  8. Junio C HamanoNov 6, 2006

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.