27

I downloaded git on my windows, and some other stuffs, including git bash, came along.

Although I didn't know why bash terminal has been included in the "git", it supported not only the functions for git, but other functions like mkdir, cp, mv, just like a real linux bash terminal.

Recently I came to know the WSL (Windows Subsystem for Linux), which makes bash terminal available in windows.

Is the git bash quite inferior to WSL in terms of functionality?

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

Rhee
  • 785
  • 1
  • 5
  • 17
  • The exact question came up in google https://www.quora.com/What-is-the-difference-between-Bash-on-Ubuntu-and-Windows-and-Git-Bash – Juan Oct 20 '18 at 13:03
  • I also.use both on win10, my experience is that wsys provides a full set of tool chains that a linux system can offer(c++ compiler, apt-get for example), while git bash is a terminal simulator. – TC Zhang Oct 21 '18 at 00:08

2 Answers2

16

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"
Dave Mackey
  • 4,078
  • 17
  • 70
  • 130
VonC
  • 1,042,979
  • 435
  • 3,649
  • 4,283
6

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.

  • 4
    This was fixed in version 1903: https://devblogs.microsoft.com/commandline/whats-new-for-wsl-in-windows-10-version-1903/ – KemanoThief Oct 08 '19 at 19:41