Windows版Git-scm,msysGit和Git之间的区别


72

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

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



website1:git-for-windows.github.io和website2:git-scm.com有什么区别?两者都提供Windows版Git的二进制文件。
joedotnot

1
只是想提一下,在撰写本文时,gitforwindows.orggit-scm.com/downloads都指向相同的可下载二进制文件,无论哪种情况,github.com/git-for-windows/git都是官方存储库。gitforwindows.org网站似乎是Windows版Git的正式“面孔”。请放心,这不是一个“单独但看似相似的”项目。它实际上是相同的软件。
约翰Y

Answers:


125

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

如果您只想在Windows上安装Git,则可以在此处停止阅读,而从官方网站下载Windows版本。

Windows版Git

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发行版通常在正式版本发布后不久就会发布(尽管有时会跳过版本)。

msysGit

在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程序(如lessawkgrep,甚至文本编辑器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存储库进行交互)。


3
谢谢!我在网上找不到任何东西,相信我,我已经搜索了很多次。零零碎碎,但没有什么比这更全面。
trysis 2014年

那么msysGit,二进制文件/.exe等几乎git-scm是什么,最终产品是吗?
trysis

1
msysGit是用于构建最终产品“用于Windows的Git”的构建环境,仅此而已(Git,但适用于Windows)。而“ git-scm”只是the脚的域名:P

3
@trysis,另一个历史悠久的事实:Windows的Git在婴儿期和青春期时被称为msysGit,许多早期采用此名称的人都知道它,并且它卡住了。后来,此Windows端口的开发人员决定将使用msysGit构建的二进制安装程序的名称更改为Windows的Git,并将名称“ msysGit”仅保留用于Windows的Git开发环境。由于您完全可以在Web上找到表示Windows的Git的名称“ msysGit”,因此这无疑增加了混乱。
kostix

1
@poke我认为,“ scm”代表“软件配置管理”(en.wikipedia.org/wiki/Software_configuration_management)。
Tilman Vogel 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.