From: Ron1 Date: Fri, 29 Jan 2010 21:16:21 GMT Subject: Re: master^ is not a local branch -- huh?!? Message-ID: In-Reply-To: In article , Johannes Schindelin wrote: > Hi, > > On Fri, 29 Jan 2010, Jacob Helwig wrote: > > > On Fri, Jan 29, 2010 at 12:20, Ron1 wrote: > > > [ron@mickey]$ git checkout master > > > Already on 'master' > > > [ron@mickey]$ git checkout master^ > > > Note: moving to 'master^' which isn't a local branch > > > If you want to create a new branch from this checkout, you may do so > > > (now or later) by using -b with the checkout command again. Example: > > >  git checkout -b > > > HEAD is now at 7be05e0... test > > > [ron@mickey]$ git branch > > > * (no branch) > > >  master > > > [ron@mickey]$ > > > > > > Huh?!? > > > > > > This is a test repository which has never been pulled from nor pushed to > > > anywhere.  So how is it possible that I have a non-local branch? > > > > master^ is a commit (the first parent of master), not a branch (local > > or otherwise). > > Indeed. Maybe you (Ron1) need to get a bit more acquainted to Git before > complaining. Chill, dude.  I'm not complaining.  I'm just confused. I know that master^ is a commit and not a branch.  I thought I was invoking the third variant of git-checkout (as given on the git-checkout man page) and checking out a commit (which the man page calls a tree-ish). In any case, since my question seems to have sparked some discussion, I'd like to offer two observations: 1. Saying "isn't a local branch" is mightily confusing, because it is ambiguous whether the problem is that it isn't a branch or if it isn't local. 2. If I pass something to git checkout (or any other command for that matter) that it expects to be a branch but isn't a branch it would be much better if it just gave an error and did nothing rather than give a (confusing) warning and try to extrapolate the user's intentions. Whatever a user could possibly mean by 'git checkout master^' it is almost certainly not what that command actually does at the moment. rg