Re: How to get the branch HEAD points to using a plumbing command?
- From
Jeff King <peff@peff.net>
- Date
- Jan 5, 2021, 20:01 UTC
- Message-ID
- <X/TFh+SLYqbT1lT9@coredump.intra.peff.net>
- In-Reply-To
- <8735zfs8xj.fsf@evledraar.gmail.com>
On Tue, Jan 05, 2021 at 04:24:56PM +0100, Ævar Arnfjörð Bjarmason wrote:
Show 13 quoted lines
> > My question is, is there a "better" (more idiomatic, less > > "expensive", etc.) way of doing it using only one plumbing command? > > This solution is OK but it is more work than just matching one line > > with a regular expression. The reason I want to do this using only > > plumbing commands is because I think that plumbing command interface > > would be more stable than the format (organization, structure) of > > files under the `.git/` directory across Git versions. Please > > correct me if I'm wrong in this idea as well. > > You'll want to use git-rev-parse for this, e.g.: > > $ git rev-parse --symbolic-full-name HEAD > refs/heads/master
Another option is:
git symbolic-ref HEAD
which has the benefit of working even when HEAD points to an unborn branch. It also has a --short option to drop the refs/heads/ part.
It's also worth noting what you'd see on a detached HEAD. With rev-parse you'll see "HEAD", but symbolic-ref will exit with a non-zero code.
-Peff