On Tue, Jun 15, 2010 at 21:46, Boyd Stephen Smith Jr. <b...@iguanasuicide.net > wrote:
> Hrm, this isn't actually on-topic for Debian-user. You might have better > luck > with the Git user's mailing list. > > On Tuesday 15 June 2010 05:50:45 Anand Sivaram wrote: > > I am trying to understand the different aspects of git rebase, especially > > the "--onto" option. So I was going through "git help rebase". > > That made me consider a few other scenarios. > > Git's rebase in a nutshell: > > Switch to the <branch> argument. > Determine where the current branch splits from <upstream>; call that MB. > Convert MB..HEAD into a quilt / series of patches; call that Q. > Reset <branch> to <newbase>, or <upstream> if --onto was not specified. > Replay Q, allowing the user to manually fix up issues or abort the whole > process. > > > 1. The first example is "git rebase master" or "git rebase master topic" > > But if we want to use "--onto" option, this would become > > git rebase --onto master E topic > > or > > git checkout topic > > git rebase --onto master E > > Where E is ether the commit hash of E, HEAD~3, master~3 or any other > > tag/branch > > attribute of E in case there are any. > > Is it correct? > > The "<upstream>" argument to Git's rebase can be anything that Git can > resolve > to a commit object. That's true. > > (git rebase --onto master master topic) does exactly the same thing as (git > rebase master topic). > > In this case, since E is the "branch point" / "merge base" for topic and > master, (git rebase --onto master E topic) does the same thing as (git > rebase > master topic); as does (git rebase --onto master F topic) and (git rebase > -- > onto master G topic). > > > 2. In the same example, when we do > > git rebase --onto F E topic > > Does the output become the following? > > A'--B'--C' topic > > / > > D---E---F---G master > > Yes. > > > 3. In the same example, suppose we do > > git rebase --onto master B topic > > The output will become > > > > C' topic > > / > > D---E---F---G master > > Yes. > > Commits A and B will still exist; they might be dangling objects, but they > won't be immediately deleted. > > > Is it like cherry picking just C > > git cherry-pick C > > Yes. > > > Could anyone verify these answers? > > How would you like me to do that? > -- > Boyd Stephen Smith Jr. ,= ,-_-. =. > b...@iguanasuicide.net ((_/)o o(\_)) > ICQ: 514984 YM/AIM: DaTwinkDaddy `-'(. .)`-' > http://iguanasuicide.net/ \_/ > Boyd Stephen, Thanks for the help and clarifications. Thanks and Regards Anand