code: public function getBranches()
      {
          if (null === $this->branches) {
              $branches = array();
  
              $this->process->execute('git branch --no-color --no-abbrev -v', $output, $this->repoDir);
              foreach ($this->process->splitLines($output) as $branch) {
                  if ($branch && !preg_match('{^ *[^/]+/HEAD }', $branch)) {
                      if (preg_match('{^(?:\* )? *(\S+) *([a-f0-9]+)(?: .*)?$}', $branch, $match)) {
                          $branches[$match[1]] = $match[2];
                      }
                  }
              }
  
              $this->branches = $branches;
          }
  
          return $this->branches;
      }
docs: {@inheritDoc}