git bash 是一个 shell,其中:
见“Fix msysGit Portable $HOME location”:
在 Windows 64 上:
C:\Windows\SysWOW64\cmd.exe /c ""C:\Prog\Git\1.7.1\bin\sh.exe" --login -i"
这与git-cmd.bat 不同,后者在纯 DOS 命令提示符中提供 git 命令。
像GitHub for Windows (G4W) 这样的工具提供了different shell for git(包括一个PowerShell)
2015 年 4 月更新:
注意:msysgit/Git for windows 1.9.5 中的 git bash 是旧的:
GNU bash, version 3.1.20(4)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.
但是有了phasing out of msysgit(2015 年第四季度)和新的Git For Windows(2015 年第二季度),您现在有了Git for Windows 2.3.5。
它有一个更新的 bash,基于 64 位 msys2 project,MSYS 的独立重写,基于现代 Cygwin(POSIX 兼容层)和 MinGW-w64,旨在与本机 Windows 软件更好的互操作性。 msys2 也带有 its own installer。
git bash 现在是(使用新的 Git For Windows):
GNU bash, version 4.3.33(3)-release (x86_64-pc-msys)
Copyright (C) 2013 Free Software Foundation, Inc.
原始答案(2013 年 6 月)
更准确地说,来自msygit wiki:
从历史上看,Windows 上的 Git 仅使用 Cygwin 得到官方支持。
为了帮助制作原生 Windows 版本,该项目已启动,基于 mingw fork。
为了让项目名称的乳白色“汤”更清晰,我们这样说:
-
msysGit - 是这个项目的名称,它是 Git for Windows 的构建环境,它发布了官方二进制文件
-
MinGW - 是原生 Microsoft Windows 应用程序的极简开发环境。
它实际上是 Microsoft 运行时的一个非常薄的编译时层;因此,MinGW 程序是真正的 Windows 程序,没有 Unix 样式路径或 POSIX 细节(例如 fork() 调用)的概念
-
MSYS - 是一个 Bourne Shell 命令行解释器系统,由 MinGW(和其他人)使用,过去从 Cygwin 分叉
-
Cygwin - 类似 Linux 的环境,过去用于为 Windows 构建 Git,现在与 msysGit 无关
所以,关于“git bash”的两行描述是:
“Git bash”是“Git for Windows”中包含的msys shell,是Cygwin的精简版(旧版本),其唯一目的是提供足够的POSIX层来运行 bash。
提醒:
msysGit 是为 Windows 编译 Git 的开发环境。它是完整的,你只需要安装 msysGit,然后你就可以构建 Git。无需安装任何第三方软件。
msysGit 不是用于 Windows 的 Git;那是一个安装 Git 的安装程序——而且只有 Git。
在“Difference between msysgit and Cygwin + git?”中查看更多信息。