Switching between branches

4 messages, 3 authors, 2016-06-15 · open the first message on its own page

Switching between branches

From: Pavel Roskin <hidden>
Date: 2016-06-15 22:41:53

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.

I tried to switch a git-pasky working directory to the linus branch.

Here's what I tried:

git track linus
git cancel
git pull
git cancel
git merge linus
git cancel

After all that I found that README is still from the pasky branch.

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.

I'm using git-pasky 0.6.2.

-- 
Regards,
Pavel Roskin

Re: Switching between branches

From: Petr Baudis <hidden>
Date: 2016-06-15 22:41:53

Dear diary, on Thu, Apr 21, 2005 at 03:42:39AM CEST, I got a letter
where Pavel Roskin [off-list ref] 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

Re: Switching between branches

From: Matthias Urlichs <hidden>
Date: 2016-06-15 22:41:53

Hi, Petr Baudis wrote:
Hello,
quoted
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.
I do -- I have a project which builds several slightly-customized versions,
and I'd like to keep the generated objects around if possible.

So I just build one version, then "git cancel FOO" to the next version,
and let the make rules take care of rebuilding what needs to be rebuilt.

("cancel" already does most of the job anyway, i.e. cleanup stuff which
the build process might have changed that it shouldn't have.)

Cf. the last of the patches I've just mailed to the list.
-- 
Matthias Urlichs

Re: Switching between branches

From: Petr Baudis <hidden>
Date: 2016-06-15 22:41:53

Dear diary, on Thu, Apr 21, 2005 at 04:12:49PM CEST, I got a letter
where Matthias Urlichs [off-list ref] told me that...
Hi, Petr Baudis wrote:
quoted
Hello,
quoted
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.
I do -- I have a project which builds several slightly-customized versions,
and I'd like to keep the generated objects around if possible.

So I just build one version, then "git cancel FOO" to the next version,
and let the make rules take care of rebuilding what needs to be rebuilt.
I suppose we could do with git switch then.

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help