From: Aaron Gray Date: Tue, 02 Jun 2009 16:50:09 GMT Subject: Re: Duplicating a branch Message-ID: <70411981D37A4F2ABF5D0A9CF24E6884@HPLAPTOP> In-Reply-To: <7voct6fy1e.fsf@alter.siamese.dyndns.org> Nice expanation and mini tutoial Junio ! Thanks ever so much, very useful. Aaron > "Aaron Gray" writes: > >> How do I go about duplicating a branch within a repository, so I can >> make test mods ? > > Run > > $ git checkout -b experiment master > > to make a new "experiment" branch that points at the same comit as > "master" (or whatever other branch), hack away (including committing which > would grow the history of "experiment" branch without touching "master"). > > After you are done, and if you want to discard it, simply: > > $ git checkout master > $ git branch -D experiment > > or if you want to keep all of it: > > $ git checkout master > $ git merge experiment > > *BUT* if your "experiment" was truly exploratory in the sense that your > history is full of "let's try this, commit to snapshot, test, oops, it did > not work, let's try that, commit to snapshot, test, ok, I made some > progress, let's continue" crufts, you would most likely want to clean-up > your history before the latter "checkout master and merge experiment into > it" steps with something like: > > $ git rebase -i master experiment > > If you in advance know that what you are going to do is truly "throw-away > experiment", you do not even need to use an "experiment" branch. You can > do your exploration while on a detached HEAD: > > $ git checkout master^0 > > and hack away, including making commits (but you will discard them in > the end), and then finally: > > $ git reset --hard ;# if you have local changes you do not want to > take back to master > $ git checkout master > > > >