git bash on windows vs. WSL

WSL does not trigger file handlers when the file is changed in Windows tools - https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

So, you cannot run a dev server in WSL, as code changes made a Windows editor will not be reflected in the dev server.


Git for Windows is using the mingw-w64 project (as illustrated here) and msys2.
See more in "How are msys, msys2, and msysgit related to each other?".

That is vastly different from WSL, which emulates an actual Linux distribution.

Does it contain some constraints that WSL doesn't have?

The Git for Windows is based on a POSIX compatibility layer, which has limitations: POSIX support is deprecated since Windows 8.


Note: WSL will soon be replaced by WSL2, which uses an entirely new architecture that uses a real Linux kernel.


If your program depends on Git bash (and not WSL/WSL2 bash), make sure to put said Git for Windows first in your PATH, as Jon Skeet described in "USING “GIT BASH” FROM APPVEYOR", in an AppVeyor CI environment.

# Make sure we get the bash that comes with git, not WSL bash
  - ps: $env:Path = "C:\Program Files\Git\bin;$env:Path"