On 9/5/14 5:58 AM, Jed Brown wrote:
Satish Balay <[email protected]> writes:
What's wrong with "git rev-parse --abbrev-ref HEAD" or "git symbolic-ref HEAD"?
balay@asterix /home/balay/petsc (maint)
$ git checkout origin/master

<snip>

balay@asterix /home/balay/petsc ((de1529e...))
$ git branch | sed -n '/\* /s///p'
(detached from origin/master)
balay@asterix /home/balay/petsc ((de1529e...))
$ git rev-parse --abbrev-ref HEAD
HEAD
Yeah, less useful.

balay@asterix /home/balay/petsc ((de1529e...))
$ git symbolic-ref HEAD
fatal: ref HEAD is not a symbolic ref
Maybe

   git symbolic-ref -q HEAD || git rev-parse HEAD

or

   git describe --all --contains HEAD

This appears to work too:
git name-rev --name-only HEAD
(I think for detached heads it gives you master~1 or the like)

balay@asterix /home/balay/petsc ((de1529e...))

Notice the first one has useful info - but not the others. Even
git-prompt gives some useful info [if not the the branch name..]

So I pushed a change using 'git branch' and parsing its output
from python [instead of 'sed']

I'm suprised 'git branch' doesnt do the most obvious thing that one
would expect. [default to - or have an option to list the current
branch - not all the branches]
Perhaps, but it wouldn't fix the problem because there isn't always a
"current branch".  I would rather script with plumbing commands instead
of ones that could change output format.

Reply via email to