I’ve been using Windows for much of my work now. One of the things I struggled with was about supplying my GitHub credentials to
git when used in Windows Subsystem for Linux. The solution isn’t complicated, but it just isn’t well documented.
So here’s a short how-to, for my own reference if I ever need to setup this up again, and anyone else trying to do the same thing. This is for using
git in Windows Subsystem for Linux, in a distribution like Ubuntu. There are other tutorials about using
git in cmd.exe, or in a Git Bash, or the like. I’ve included bit extras about GPG signing of commits.
First, go get Microsoft’s Git Credential Manager for Windows. It’s on GitHub, look further down for the installer executable. Install that. The defaults to all the install questions are just fine.
Then, in your WSL shell, configure
git like so:
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe "
(The above is just one line, of course.)
That’s basically it. The next time you try to
git pull (or whatever) from GitHub, you’ll be properly prompted in a GUI dialog box for your credentials. It will even cleverly handle 2FA logins automatically, obtaining a Personal Access Token on your behalf.
Subsequently, you won’t have to keep authenticating to GitHub anymore. GitHub’s official guide at https://help.github.com/en/articles/adding-a-new-gpg-key-to-your-github-account is excellent.
Just know that if you added a passphrase for your GPG key, you may need to set the GPG_TTY environment variable as such:
$ export GPG_TTY=$(tty)
You should put that in your
Then, you can also tell
git you want your commits signed all the time by default:
$ git config --global commit.gpgsign true
This should make your
git work so much easier.