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.