project: Use git rev-parse to read HEAD

Don't directly read `.git/HEAD`, git already has a command for this.

Bug: 432200791
Change-Id: Iba030650224143eb07c44da1fa56341d9deb4288
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/492941
Reviewed-by: Scott Lee <ddoman@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
Tested-by: Gavin Mak <gavinmak@google.com>
diff --git a/project.py b/project.py
index 3def4d3..84a5cdf 100644
--- a/project.py
+++ b/project.py
@@ -3834,19 +3834,11 @@
 
         def GetHead(self):
             """Return the ref that HEAD points to."""
-            path = self.GetDotgitPath(subpath=HEAD)
             try:
-                with open(path) as fd:
-                    line = fd.readline()
-            except OSError as e:
+                return self.rev_parse("--symbolic-full-name", HEAD)
+            except GitError as e:
+                path = self.GetDotgitPath(subpath=HEAD)
                 raise NoManifestException(path, str(e))
-            try:
-                line = line.decode()
-            except AttributeError:
-                pass
-            if line.startswith("ref: "):
-                return line[5:-1]
-            return line[:-1]
 
         def SetHead(self, ref, message=None):
             cmdv = []