Re: Switching between branches
- From
Petr Baudis <pasky@ucw.cz>
- Date
- Apr 21, 2005, 07:31 UTC
- Message-ID
- <20050421073123.GD31910@pasky.ji.cz>
- In-Reply-To
- <1114047759.20044.22.camel@dv>
Dear diary, on Thu, Apr 21, 2005 at 03:42:39AM CEST, I got a letter where Pavel Roskin <proski@gnu.org> told me that...
> Hello!
Hello,
> Perhaps it's a naive question, but how do I switch between branches? I > mean an equivalent of "svn switch" or "cvs update -r branch" that would > reuse the existing working directory.
you can't. There was 'git update' (and intermediate never-committed 'git switch'), but I decided not to support it for now, since I don't have any compelling usage case for it. Do
git fork my-linus ~/my-linus linus
and you will get a local clone of Linus' branch in ~/my-linus, tracking and everything.
> Then I tried "git merge -b pasky linus" - this actually changed the > files to the linus branch, but it didn't remove files specific to > git-pasky. Also, I'm surprised that I had to specify "-b pasky", as if > the currently checked out branch is unknown.
Since git merge's purpose is to _merge_, not _switch_, so it picks the common ancestor by default; another disadvantage is that this happens on top of your local tree, but your history will record it as a merge which shares both linus and my history, which isn't quite right. What is peculiar, though, is that it didn't remove the files specific to git-pasky.
-- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor