diff --git a/lib/Git/Repository.php b/lib/Git/Repository.php index b9fc3d4..4b297c0 100644 --- a/lib/Git/Repository.php +++ b/lib/Git/Repository.php @@ -422,14 +422,21 @@ class Repository else { return 'master'; } + // Find first existing branch foreach (explode("\n", $file) as $line) { $m = array(); if (preg_match('#ref:\srefs/heads/(.+)#', $line, $m)) { - return $m[1]; + if ($this->hasBranch($m[1])) { + return $m[1]; + } } } // Default to something sane if in a detached HEAD state. + $branches = $this->getBranches(); + if (!empty($branches)) { + return current($branches); + } return 'master'; }