Differences between Git-scm, msysGit & Git for Windows
git-scm(从git-scm.com下载)和msysGit(托管在Google Code,Github以及其他可能的主机上)之间有什么区别? 它们看起来都非常相似,即使我有git-scm,我也已应用了为msysGit指定的修复程序,并且它们似乎工作正常。
另外,哪一个(如果有的话)是Git for Windows,并且都被称为Git Bash,或者两者都具有Git Bash shell,或者只有两者之一?
-
另请参阅stackoverflow.com/q/11849737/405017和stackoverflow.com/q/3672272/405017和superuser.com/q/742536
-
website1:git-for-windows.github.io和website2:git-scm.com有什么区别? 两者都提供Windows版Git的二进制文件。
-
只是想提一下,在撰写本文时,gitforwindows.org和git-scm.com/downloads都指向相同的可下载二进制文件,无论哪种情况,github.com/git-for-windows/git都是官方存储库。 gitforwindows.org网站似乎是Windows版Git的正式"面孔"。 请放心,它不是一些"单独但看似相似的"项目。 它实际上是相同的软件。
git-scm.com网站是版本控制软件Git的官方网站。没有" Git-SCM",仅是源代码管理管理(SCM)软件的URL,名称仅为Git。原始的Git软件最初是为Linux编写的,仅作为在Windows上不容易编译的来源提供。
好。
If you are just interested in installing Git on Windows, then you can stop reading here and just download a Windows build from the official website.
Ok.
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启动Git for Windows项目。新项目主要是由同一团队开始的。
好。
尽管许多人认为msysGit是Git二进制文件的名称,但这实际上是他们创建的开发环境的名称。它基于MSYS,这是MSYS2重新启动之前的较旧且过时的版本。 MSYS的不良状态是Git for Windows项目使用完全改版的构建环境启动的原因之一。
好。
该项目实质上发布了三样东西:msysGit,用于Windows的Git和用于Windows的便携式Git。 msysGit安装程序将安装并设置在Windows上构建Git所需的开发环境,就像Git for Windows SDK现在所做的那样。 Windows版Git是可以在Windows计算机上安装Git的安装程序,而Windows版便携式Git则是您无需安装的二进制文件。请注意,它们的所有发行版都是作为"预览"版本发行的,这意味着它们将不受完全支持的发行版。尽管如此,该项目非常成熟,发行版非常稳定,并且是在Windows上实际安装Git的最佳方法。
好。
吉特·巴什
如上所述,很多Git是作为shell脚本编写的。为了执行这些脚本,Git for Windows使用了与MSYS2捆绑在一起的Bash(因此Bash充当其解释器)。
好。
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的安装过程中决定不将任何Git可执行文件添加到PATH中,也要知道Git Bash将始终有效,这也很有用。但是,我个人的建议是将Git可执行文件(只是Git可执行文件,在安装过程中选择"在Windows命令提示符下使用Git"选项)添加到PATH。这样,您可以从其他外壳(cmd.exe或PowerShell)使用Git,其他程序也可以访问它(例如,许多库甚至IDE集成都期望PATH中的Git可执行文件与Git存储库进行交互)。
好。
好。
-
谢谢!我在网上找不到任何东西,相信我,我已经搜索了很多次。零零碎碎,但没有什么比这更全面。
-
那么msysGit是二进制文件/.exes等,而git-scm是最终产品吗?
-
msysGit是用于构建最终产品"适用于Windows的Git"的构建环境,是的(Git,但适用于Windows)。而" git-scm"只是the脚的域名:P
-
编译自己与从git-scm获取它之间是否存在性能差异?是的,这很糟糕,scm到底代表什么?
-
如果您使用msysGit自己进行编译,则最终产品将与下载完成后的产品相同。不幸的是,没有什么比Windows的msysGit好。它比Windows上的速度慢一点,但与"原始" Git(在Linux上)完全兼容,因此,这是您最好的选择。" scm"代表"源代码管理",是"版本控制软件"的另一个词。
-
@trysis,另一个历史悠久的事实:Windows的Git处于婴儿期和青春期时,被称为msysGit,许多早期采用此名称的人都知道它,并且它卡住了。后来,此Windows端口的开发人员决定将使用msysGit构建的二进制安装程序的名称更改为Windows的Git,并将名称" msysGit"仅保留用于Windows的Git开发环境。由于您完全可以在Web上找到表示Windows的Git的名称" msysGit",因此这无疑增加了混乱。
-
@trysis,还有一个事实:Git和Windows的Git都不是由企业支持的项目,因此它们实际上没有软件等的"官方软件包"。 git-scm.com是一个站点(由github,IIRC后面的一个人运行),是一个方便的位置,可保留指向源代码,文档和教程的指针,甚至提供下载(仅对Windows和Mac OS有用)还是X)。
-
@kostix Git得到了内核社区的"官方支持",这已经赋予了他们很多可靠性。像GitHub这样的公司也为其增加了很多东西。 git-scm.com被认为是Git的主要网站,Git的维护者也认为git-scm.com。
-
@poke,非常正确,但我仍然给人一种印象,OP认为有Git和" Git-SCM"是单独的产品,可能是由某些企业推动的(.com TLD加剧了混乱;也请注意,这是商业性的产品名称中使用" Git"一词的产品-" Smart Git"就是一个例子;作为奖励,OP并未意识到" SCM"的含义。因此,我试图证明这一假设是没有根据的-不多也不少。
-
@kostix老实说,我什至没有考虑过这两个是不是由同一个人制作的,但我以为是。我知道两者都是由像您或我这样的"普通人"而非公司创建的,尽管波兰人认为它们至少与一个大型公司实体有关。
-
@poke我认为," scm"代表"软件配置管理"(en.wikipedia.org/wiki/Software_configuration_management)。
-
更新msysgit和" Git for Windows"现在已经合并了名称。见stackoverflow.com/a/30181774/1224158
-
两者现在都一样,甚至git-scm都有Wndows(32,64-bit)的二进制文件。git-scm.com/download/win
-
@RaviParekh您说得对,我的意思是暂时更新此答案。感谢您的间接提醒;稍后会做:)