Everything works from root:
# guix repl
scheme@(guix-user)> (use-modules (guix channels) (guix scripts pull))
scheme@(guix-user)> %default-channels
$1 = (#<<channel> name: guix url: "https://git.savannah.gnu.org/git/guix.git" branch: "master" commit: #f introduction: #<<channel-introduction> first-signed-commit: "9edb3f66fd807b096b48283debdcddccfea34bad" first-commit-signer: #vu8(187 176 45 223 44 234 246 168 13 29 230 67 162 160 109 242 163 58 84 250)> location: ((filename . "guix/channels.scm") (line . 179) (column . 2))>)
scheme@(guix-user)> (guix-pull)
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
guix https://git.savannah.gnu.org/git/guix.git a035256
libx11-1.7.1A-doc 1.2MiB 4.0MiB/s 00:00 [##################] 100.0%
# ... etc
From my user:
$ guix repl
scheme@(guix-user)> (use-modules (guix channels) (guix scripts pull))
scheme@(guix-user)> %default-channels
$1 = (#<<channel> name: guix url: "https://git.savannah.gnu.org/git/guix.git" branch: "master" commit: #f introduction: #<<channel-introduction> first-signed-commit: "9edb3f66fd807b096b48283debdcddccfea34bad" first-commit-signer: #vu8(187 176 45 223 44 234 246 168 13 29 230 67 162 160 109 242 163 58 84 250)> location: ((filename . "guix/channels.scm") (line . 179) (column . 2))>)
scheme@(guix-user)> (guix-pull)
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
guix repl: error: Git error: malformed URL ''
I had the same error message which I just debugged. I had a line in by dot files which set the https_proxy environment variable to a blank string. This doesn't cause problems for my normal usage of git, but it does for "guix pull". I switched my dot file to instead call "unset https_proxy".