NAME Dist::Zilla::Util::Git::Branches - Extract branches from Git VERSION version 0.001000 SYNOPSIS This module aims to do what you want when you think you want to parse the output of git branch Except it works the right way, and uses git for-each-ref So use Dist::Zilla::Util::Git::Branches; my $branches = Dist::Zilla::Util::Git::Branches->new( zilla => $self->zilla ); for my $branch ( $branches->branches ) { printf "%s %s", $branch->name, $branch->sha1; } METHODS "branches" Returns a "::Branch" object for each local branch. get_branch Get branch info about master my $branch = $branches->get_branch('master'); Note: This can easily return multiple values. For instance, "branches" is implemented as my ( @branches ) = $branches->get_branch('**'); Mostly, because the underlying mechanism is implemented in terms of fnmatch(3) If the branch does not exist, or no branches match the expression, "get_branch" will return an empty list. So in the top example, $branch is "undef" if "master" does not exist. "current_branch" Returns a "::Branch" object if currently on a "branch", "undef" otherwise. my $b = $branches->current_branch; if ( defined $b ) { printf "Currently on: %s", $b->name; } else { print "Detached HEAD"; } AUTHOR Kent Fredric COPYRIGHT AND LICENSE This software is copyright (c) 2013 by Kent Fredric . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.