fetchGit: don't prefix "refs/heads/" on ref = "HEAD"
fetchGit: don't prefix "refs/heads/" on ref = "HEAD"

This fixes builtins.fetchGit { url = ...; ref = "HEAD"; }, that works in
stable nix (v2.3.10), but is broken in nix master:

  $ ./result/bin/nix repl
  Welcome to Nix version 2.4pre19700101_dd77f71. Type :? for help.

  nix-repl> builtins.fetchGit { url = "https://github.com/NixOS/nix"; ref = "HEAD"; }
  fetching Git repository 'https://github.com/NixOS/nix'fatal: couldn't find remote ref refs/heads/HEAD
  error: program 'git' failed with exit code 128

The documentation for builtins.fetchGit says ref = "HEAD" is the
default, so it should also be supported to explicitly pass it.

I came across this issue because poetry2nix can use ref = "HEAD" in some
situations.

Fixes #4674.

rycee/nix,NixOS/nix,NixOS/nix,rycee/nix,rycee/nix,NixOS/nix,NixOS/nix,rycee/nix,rycee/nix,NixOS/nix