W dniu 20.09.2016 o 20:54, Bryan Turner pisze:
> On Tue, Sep 20, 2016 at 9:23 AM, Steffen Nurpmeso <[email protected]> wrote:
>> Hello again,
>>
>> yah, sorry, i'm back again..
>> I try to find a way to find the name of the current branch in an
>> automated way, because i need to ensure that a commit happens on
>> it and no other branch. Now the problem arises that the commit
>> ref at the time of that commit maybe shared in between several
>> different branches, but no more thereafter, of course:
>>
>> ?0[steffen@wales ]$ git branch|grep '^*'
>> * stable/v14.9
Not good, 'git branch' is a porcelain (user facing) command, so it
output may change; e.g. '*' could be replaced with '•'. For example
output for detached HEAD had changed!
>> ?0[steffen@wales ]$ git name-rev --name-only HEAD
>> stable/v14.8
>>
>> Is there another way except looking into .git/HEAD or using sed(1)
>> on the output of `branch' to find the right name?
>
> Have you tried "git symbolic-ref HEAD"?
>
> $ git symbolic-ref HEAD
> refs/heads/master
>
> If you don't want the fully-qualified ref, you can add --short:
>
> $ git symbolic-ref --short HEAD
> master
This does not work for detached HEAD, but perhaps you don't need
to worry about this.
$ git rev-parse --symbolic-full-name HEAD
refs/heads/master
But
$ git checkout HEAD^0
Note: checking out 'HEAD^0'.
You are in 'detached HEAD' state. [...]
$ git rev-parse --symbolic-full-name HEAD
HEAD
$ git symbolic-ref HEAD
fatal: ref HEAD is not a symbolic ref
$ git branch
* (HEAD detached at 3e2ebf9)
master
--
Jakub Narębski