背景
我是OP。我最初只是想知道我正在使用的东西的正式名称。
现在,我认为该名称是“ Windows的Git Bash”。不幸的是,完整的答案很复杂,因为这实际上是很多事情。
2016年的最佳答案原本对我没有帮助,但经过大量编辑,并变得越来越有用。尽管如此,它仍然遗漏了我最初的一些问题。
开始: msysgit
实际上,开始可能是MSYS
,但确实如此MSYS2
。术语“ msysgit”是一个很好的术语,可以进行搜索以找出XYZ出现错误时正在发生的情况。诸如“ @ *#!中的所有autocrlf设置都存储在哪里?!?!!?!?”之类的东西。
msysgit项目中的README(https://github.com/msysgit/msysgit)解释了组件之间的关系:
Windows的msysGit和Git之间的关系
Git for Windows是安装用于在Windows上运行Git的最小环境的软件包。它带有Bash(Unix类型的shell),Perl解释器以及Git可执行文件及其依赖项。
另一方面,msysGit是安装可以构建Windows Git 的构建环境的软件包。最简单的方法是通过网络安装程序进行安装。
MSYS和MinGW之间的区别
该MinGW的项目的目标是提供一种方式来编译使用GNU C编译器没有POSIX层原生Windows二进制文件。
但是,至少Bash需要POSIX层(最显着的原因是fork()
Windows上没有调用)。因此,抛出了MSYS(最小系统),提供了在Windows上提供Bash(和Perl)功能所需的最小系统。
因此,MSYS附带一个POSIX层(基于Cygwin的旧版本),该层仅由Bash和Perl使用,而在该环境中编译的任何文件均不使用。
顺便说一句,以防万一完整的自述文件被删除,我将其复制到了一个摘要中。
终端窗口: mintty
Windows的Git Bash的另一部分是实际的Windows命令行mintty。谢天谢地,它存在,但这不是我需要用google搜索的东西。
MSYS2的参考
他们的Wiki是有关MSYS2环境的详细信息的真正宝库:https : //github.com/msys2/msys2/wiki
在引言中,这部分与我的原始问题最相关:
MSYS2由三个子系统组成及其相应的包装仓库,msys2
,mingw32
,和mingw64
。
该讨论也非常有帮助:https :
//sourceforge.net/p/msys2/discussion/general/thread/dcf8f4d3/#8473/588e