git-scm
(从git-scm.com下载)和msysGit(托管在Google Code,Github以及其他地方)之间有什么区别?它们看起来都非常相似,即使我有git-scm,我也已应用了为msysGit指定的修复程序,并且它们似乎工作正常。
另外,哪一个(如果有的话)是Git for Windows
,并且都被称为Git Bash
,或者两者都具有Git Bash
外壳,或者只有两者之一?
git-scm
(从git-scm.com下载)和msysGit(托管在Google Code,Github以及其他地方)之间有什么区别?它们看起来都非常相似,即使我有git-scm,我也已应用了为msysGit指定的修复程序,并且它们似乎工作正常。
另外,哪一个(如果有的话)是Git for Windows
,并且都被称为Git Bash
,或者两者都具有Git Bash
外壳,或者只有两者之一?
Answers:
该网站git-scm.com是的Git的版本控制软件的官方网站。没有“ Git-SCM”,仅是源控制管理(SCM)软件的URL,名称仅为Git。原始的Git软件最初是为Linux编写的,仅作为在Windows上不容易编译的源代码提供。
如果您只想在Windows上安装Git,则可以在此处停止阅读,而从官方网站下载Windows版本。
Git for Windows是致力于构建Windows Git本机版本的项目。Windows版本可在Git官方网站上下载,它们分别为32位和64位版本。
适用于Windows的Git构建在MSYS2(MinGW的一部分)的基础上,该MSYS2提供了一个最小的类unix的shell环境,该环境用于运行不是用本机代码编写的Git的所有组件(很多Git是作为shell编写的)脚本)。为了使用MSYS2构建Git,项目组有一个特殊的“ Git for Windows SDK”,它基本上是在Windows上构建Git所需的整个构建环境,并附带了您开始在Git本身上工作所需的一切。
该项目维护自己的Git分支,该分支与原始Git项目保持最新,但包含在Windows上构建它所需的一组补丁。Git for Windows发行版通常在正式版本发布后不久就会发布(尽管有时会跳过版本)。
在Git版本2之前,Git for Windows二进制文件是由名为msysGit的项目发布的,该项目是Git for Windows项目的前身。该项目已于2015年8月18日退役,希望通过重新构建的Windows SDK开发环境Git启动Windows Git项目。新项目主要是由同一团队开始的。
虽然许多人认为msysGit是Git二进制文件的名称,但这实际上是他们创建的开发环境的名称。它基于MSYS,这是MSYS2重新启动之前的较旧且过时的版本。MSYS的不良状态是Windows版Git的原因之一项目在完全改造的构建环境下启动。
该项目实质上发布了三件事:msysGit,适用于Windows的Git和适用于Windows的便携式Git。msysGit安装程序将安装和设置在Windows上构建Git所需的开发环境,就像Git for Windows SDK现在所做的那样。适用于Windows的Git是可以在Windows机器上安装Git的安装程序,而适用于Windows的便携式Git只是您不需要安装的二进制文件。请注意,它们的所有发行版本都是作为“预览”版本发行的,这意味着它们将不受完全支持的发行版本。尽管如此,该项目非常成熟,发行版非常稳定,并且是在Windows上实际安装Git的最佳方法。
如上所述,很多Git是作为shell脚本编写的。为了执行这些脚本,混帐for Windows使用猛砸是附带了MSYS2(所以猛砸可以作为一个解释器)。
Git Bash通常是指Git for Windows安装程序创建的快捷方式。它启动运行bash一个全功能的控制台窗口,所以还可以使用Git以及一组常用的命令行工具或Unix程序(如less
,awk
,grep
,甚至文本编辑器vim
)。特别是对于经验不足的用户,Git Bash是与Git进行交互的常用方法,尽管您可以在以Windows为中心的环境(如PowerShell)中轻松使用它。
从Git版本2开始,默认情况下,Git Bash将在MinTTY中启动,MinTTY是MSYS2附带的终端仿真器,即使对于不习惯控制台体验的用户也可以轻松使用它。
即使您决定在Windows版Git的安装过程中决定不向PATH添加任何Git可执行文件,也要知道Git Bash始终可以正常工作也很有用。但是,我个人的建议是将Git可执行文件(只是Git可执行文件,在安装过程中选择“从Windows命令提示符中使用Git”选项)添加到PATH。这样,您可以从其他外壳(cmd.exe或PowerShell)使用Git,其他程序也可以访问它(例如,许多库甚至IDE集成都期望PATH中的Git可执行文件能够与Git存储库进行交互)。
msysGit
,二进制文件/.exe等几乎git-scm
是什么,最终产品是吗?