Thread (16 messages) flat view 16 messages, 5 authors, 2016-06-15

Re: git branch --switch?

From: Rene Herman <hidden>
Date: 2016-06-15 22:43:05

On 04/17/2007 04:31 PM, Brian Gernhardt wrote:
quoted
Is it possible to switch the current branch without checking it out? 
Not really essential, but I'm happily flaundering around with git and 
still start from scratch fairly regularly; to speed this up I've found 
the -n switch to git clone useful and would like something similar 
when reconstructing my "branch hierarchies".

Upto now I only know about "git checkout" (with or without -b) to 
switch the current branch. As said it's not really essential, but I 
was expecting there would be something like a "branch --switch". Did I 
overlook it?
Perusing git-checkout points me to git-symbolic-ref to update the HEAD 
ref to a new branch:

git symbolic-ref HEAD refs/heads/<branch>

However, I'm somewhat confused as to why you'd want HEAD and the working 
directory to get out of sync.
Thank you for the answer. Well, as said, it's not essential, but I was just 
now rebuilding a repo and have a few branches that I all want to be based on 
the same revision. Say, branch a, b and c, based on v2.6.20.

git clone -l -s -n <a local linux repo> local
git checkout -b v20 v2.6.20
git branch a
git branch b
git branch c

Step 1, 3, 4 and 5 of this are nearly instantaneous but 2 isn't -- this repo 
sits on a P1 with 64M of memory and a disk doing 8 M/s which is probably the 
only reason I thought asking about it was a good idea in the first place...

You'd be quite right in saying that there isn't much point; if I want to now 
start populating branch a, I have to "git checkout a" anyway, and that 
action _will_ now be instantaneous. If I'd replaced 2 with:

git branch --create-and-set-as-current v20 v2.6.20

then I will not have won any time until that 6th "git checkout a" step.

The checkout of v20 was superfluous in this though, and I just expected I 
should be able to skip that. It fitted my mental model...

Rene.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help