def recent_tag_name(committish = nil, options = {})
      value = git.describe({:always => true}.update(options), committish.to_s).to_s.strip
      value.size.zero? ? nil : value
    end
def recent_tag_name(committish = nil, options = {})
      value = git.describe({:always => true}.update(options), committish.to_s).to_s.strip
      value.size.zero? ? nil : value
    end
Finds the most recent annotated tag name that is reachable from a commit.

   @repo.recent_tag_name('master')
   # => "v1.0-0-abcdef"

 committish - optional commit SHA, branch, or tag name.
 options    - optional hash of options to pass to git.
              Default: {:always => true}
              :tags => true      # use lightweight tags too.
              :abbrev => Integer # number of hex digits to form the unique
                name.  Defaults to 7.
              :long => true      # always output tag + commit sha
              # see `git describe` docs for more options.

 Returns the String tag name, or just the commit if no tag is
 found.  If there have been updates since the tag was made, a
 suffix is added with the number of commits since the tag, and
 the abbreviated object name of the most recent commit.
 Returns nil if the committish value is not found.