IT:AD:Git Bash

Summary

Git is basically a collection of scripts written for the Linux environment. To run those scripts, you need a Linux shell emulator.

“Git bash” is a msys shell included in IT:AD:Git For Windows, and is a slimmed-down version of Cygwin, whose only purpose is to provide enough of a POSIX layer to run a bash (TODO:Check whether the new IT:AD:MSysGit project is still using Cygwin…I think not).

Even if you use a Git GUI of some kind to invoke Git commands, when setting up IT:AD:Git it's common to use IT:AD:Git Bash to access IT:AD:SSH, IT:AD:SSH-KEYGEN, etc. to set up the required IT:AD:SSH.

If you add %userprofile%/AppData/Local/Programs/Git/usr/bin/ to the User PATH IT:AD:Environment Variables you don't need IT:AD:Git Bash for those steps – you just need a IT:AD:Powershell CLI to activate IT:AD:SSH-KEYGEN, etc.

Notes

Git Bash is:

  • When installed by IT:AD:Git For Windows, is installed to: %userprofile%/AppData/Local/Programs/Git/git-bash.exe
  • Within the Shell, git is a known command
  • $HOME is defined (pointing to ~, ie, %userprofile%)
  • It is able to activate the programs within %userprofile%/AppData/Local/Programs/Git/usr/bin/, such as ssh.exe

Git-Bash.exe versus SH.exe

I don't yet understand the exact difference between:

%userprofile%/AppData/Local/Programs/Git/git-bash.exe

and

%userprofile%/AppData/Local/Programs/Git/usr/bin/sh.exe

Notice that git-bash.exe can automatically find the apps in the usr/bin directory, whereas sh.exe won't, until you start it using the login switch: sh.exe -l

Resources