threads / discuss / 13832

[Q] Changing the current branch (HEAD) in a bare repository - how?

Subject: [Q] Changing the current branch (HEAD) in a bare repository - how?

## tl;dr

3 messages between Jun 6, 2008 and Jun 6, 2008.

replies: 2people: 3as markdown or json

Brian Foster· Jun 6, 2008, 15:43 UTC · lore
 Using git 1.5.2.5 (Kubuntu 7.10) and a bare repository,
 I started with (the commands and output below are typed
 in by hand, mostly from memory):
    $ git branch -a
    * master
      foo
    $
 and then changed the branch names:
    $ git branch -m master old-master
    $ git branch -m foo master
 and got this:
    $ git branch -a
      master
    * old-master
    $
 Now, how do I change the current branch to the (new)
 `master'?  A `checkout' fails:
    $ git checkout master
    fatal: /usr/bin/git-checkout cannot be used without a working tree.
    $
 I (ultimately) hand-edited `HEAD' (apparently successfully),
 but am wondering what I should have done or may have missed?
 I didn't spot anything in TFM, albeit I could have easily overlooked
 or misunderstood something.
cheers!
	-blf-
-- 
"How many surrealists does it take to   | Brian Foster
 change a lightbulb? Three. One calms   | somewhere in south of France
 the warthog, and two fill the bathtub  | Stop E$$o (ExxonMobil)!
 with brightly-coloured machine tools." | http://www.stopesso.com
Johannes Schindelin· Jun 6, 2008, 15:47 UTC · re: Brian Foster · lore

Re: [Q] Changing the current branch (HEAD) in a bare repository - how?

Hi,
On Fri, 6 Jun 2008, Brian Foster wrote:
Show 23 quoted lines
>  Using git 1.5.2.5 (Kubuntu 7.10) and a bare repository,
>  I started with (the commands and output below are typed
>  in by hand, mostly from memory):
> 
>     $ git branch -a
>     * master
>       foo
>     $
> 
>  and then changed the branch names:
> 
>     $ git branch -m master old-master
>     $ git branch -m foo master
> 
>  and got this:
> 
>     $ git branch -a
>       master
>     * old-master
>     $
> 
>  Now, how do I change the current branch to the (new)
>  `master'?
vi HEAD

Ciao, Dscho

Jakub Narebski· Jun 6, 2008, 16:03 UTC · re: Brian Foster · lore

Re: [Q] Changing the current branch (HEAD) in a bare repository - how?

"Brian Foster" <brian.foster@innova-card.com> writes:
Show 27 quoted lines
>  Using git 1.5.2.5 (Kubuntu 7.10) and a bare repository,
>  I started with (the commands and output below are typed
>  in by hand, mostly from memory):
> 
>     $ git branch -a
>     * master
>       foo
>     $
> 
>  and then changed the branch names:
> 
>     $ git branch -m master old-master
>     $ git branch -m foo master
> 
>  and got this:
> 
>     $ git branch -a
>       master
>     * old-master
>     $
> 
>  Now, how do I change the current branch to the (new)
>  `master'?  A `checkout' fails:
> 
>     $ git checkout master
>     fatal: /usr/bin/git-checkout cannot be used without a working tree.
>     $
In a bare repository it doesn't matter (almost) which branch is
current one (there is no _checked out_ branch, so it only matters as a
default checked out branch for clone, IIRC).
 
>  I (ultimately) hand-edited `HEAD' (apparently successfully),
>  but am wondering what I should have done or may have missed?
You have to rely on plumbing:
  $ git symbolic-ref HEAD master
(see documentation for details).
-- 
Jakub Narebski
Poland
ShadeHawk on #git

← back to recent threads