Git-scm,msysGit和amp;之间的差异Git for Windows

时间:2014-03-10 19:56:35

标签: windows git msysgit git-bash

git-scm(从git-scm.com下载)和msysGit(托管在Google CodeGithub以及可能还有其他人)之间有什么区别?它们看起来非常相似,即使我有git-scm,我已经应用了为msysGit指定的修复程序,它们似乎工作正常。

另外,哪一个(如果有的话)是Git for Windows,并且都被称为Git Bash,或两者都有Git Bash shell,或只有两个中的一个?

1 个答案:

答案 0 :(得分:101)

网站git-scm.com是版本控制软件Git的官方网站。没有“Git-SCM”,这只是源代码管理(SCM)软件的URL - 名称只是 Git 。最初是为Linux编写的,原始的Git软件仅作为无法在Windows上轻松编译的源提供。

  

如果您只对在Windows上安装Git感兴趣,那么您可以在这里停止阅读,只需下载Windows版本from the official website

Git for Windows

Git for Windows是致力于为Windows构建Git本机构建的项目。 Windows版本可供下载on the official Git website,它们可以是32位和64位版本。

Git for Windows建立在MSYS2(MinGW的一部分)之上,它提供了一个类似于unix的最小shell环境,用于运行Git的所有组件,这些组件不是用本机代码编写的(a很多Git都是用shell脚本编写的。为了使用MSYS2构建Git,项目组有一个特殊的“Git for Windows SDK”,它基本上是在Windows上构建Git所需的整个构建环境,而with everything你需要开始使用Git本身。

项目维护自己的fork of Git,它与原始Git项目保持同步,但包含在Windows上构建它所需的一组补丁。 Git for Windows releases通常会在正式版发布后短暂延迟发布(尽管有时会跳过版本)。

msysGit

在Git第2版之前, Git for Windows 二进制文件由名为msysGit的项目发布,该项目是 Git for Windows 项目的前身。该项目于2015年8月18日退役,有利于重建 Git for Windows SDK 开发环境,启动 Git for Windows 项目。新项目主要是由同一个团队开始的。

虽然许多人认为 msysGit 是Git二进制文件的名称,但这实际上是他们创建的开发环境的名称。它基于MSYS,在MSYS2开始新的之前,它是旧的和过时的版本。 MSYS的糟糕状态是 Git for Windows 项目以完全改进的构建环境启动的原因之一。

该项目基本上发布了三件事:msysGit,Git for Windows和便携式Git for Windows。 msysGit安装程序将安装并设置在Windows上构建Git所需的开发环境,就像 Git for Windows SDK 现在所做的那样。 Git for Windows是一个安装程序,可以在Windows机器上安装Git,而便携式Git for Windows只是你不必安装的二进制文件。请注意,他们的所有版本都作为“预览”版本发布,这意味着它们不会是完全受支持的版本。尽管如此,该项目非常成熟,版本非常稳定,是在Windows上设置Git的事实上的最佳方式。

Git Bash

如上所述,很多Git都是作为shell脚本编写的。为了执行这些脚本,Git for Windows使用与MSYS2捆绑在一起的Bash(因此Bash可以作为它的解释器)。

Git Bash 通常是指 Git for Windows 安装程序创建的快捷方式。它启动了一个运行Bash的全功能控制台窗口,因此您可以使用Git以及一组常用命令行工具或Unix程序(如lessawkgrep,甚至文本编辑器vim)。特别是对于经验不足的用户,Git Bash是与Git交互的常用方式,尽管您可以从更加以Windows为中心的环境(如PowerShell)轻松使用它。

从Git版本2开始,Git Bash默认在MinTTY中启动,terminal emulator随MSYS2一起提供,即使对于不习惯控制台体验的用户也可以轻松使用。

即使您决定在 Git for Windows 的设置过程中决定不向PATH添加任何Git可执行文件, Git Bash 也会一直有效。但是,我个人建议添加Git可执行文件(只是 Git可执行文件,在安装过程中选择“从Windows命令提示符使用Git”选项)到PATH。这样,您可以从其他shell(cmd.exe或PowerShell)使用Git,其他程序也可以访问它(例如,许多库甚至IDE集成都希望PATH中的Git可执行文件与Git存储库交互)。