Use Git with Pleasure from All Your PowerShell Consoles
Since I've first installed ConEmu after reading Scott Hanselman's excellent blog post about it, I've been using it for all my console needs. Even the command prompt improvements in Windows 10 haven't really excited me all that much. There was an exception, though. I've never really made the effort to make Git work in my system command prompt. SourceTree seems to cover most of my needs, when interacting with Git. When I really needed to use it from the command line, I settled with its embedded terminal support. Now that I've finally decided to take care of this, I collected all the steps I took in this blog post for future reference. I assume it might prove useful to others, as well.
Since SourceTree comes with its own embedded installation of Git, the first step was actually installing standalone
Git. I kept most of default options in the installer, except for the PATH
variable - I wanted Git to be
included in the path so that I could use it from everywhere.
This was enough to get Git working in its most basic form, but I really wanted to take it further. As an avid PowerShell user, the next logical step was posh-git to get some prompt and tab completion goodness. The simplest way of installing it is with PsGet. Even if you've never before used the latter, you only need to execute the following commands:
(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex
Install-Module posh-git
. $PROFILE
The last command reinitializes your PowerShell session with the updated profile. After doing that, posh-git complained:
WARNING: Could not find ssh-agent
This happened because during Git installation I decided against polluting my path by adding
c:\Program Files (x86)\Git\bin
to it. Fortunately there's an easy way to get around that. Just add the following two
lines to your PowerShell profile file (type notepad $PROFILE
to edit it):
Set-Alias ssh-agent "${env:ProgramFiles(x86)}\git\bin\ssh-agent.exe"
Set-Alias ssh-add "${env:ProgramFiles(x86)}\git\bin\ssh-add.exe"
After saving the changed file and reinitializing the session again (. $PROFILE
, remember?) the error was gone.
There was one last thing, I wanted to fix: Git kept prompting me for my password whenever I tried to interact with my HTTPS remotes. Windows Credential Store for Git can help with that. I just downloaded it, executed it, and it worked. The next time Git required my password to access the remote, the following popup was displayed instead of the usual prompt in the console:
This was the last time I had to enter my credentials. They are now safely stored Windows Credential Store and retrieved from there whenever Git communicates with my remotes. Now, I'm truly satisfied with my setup.
Thanks to Phil Haack, brianary, and Joshua Gall for their posts which where the source for all of the above.