编辑(两年后:2014年10月)
Johannes Schindelin 在2014年10月解释说,msysgit已经被淘汰:
现在我们有了一个轻量级Git for Windows SDK - 它本质上是通过包管理器mingw-get管理的标准MinGW / MSys系统。
我们决定逐步淘汰“msysGit”名称(以及同名的GitHub组织),并致力于Git for Windows(使用相应的GitHub组织),并将名称“Git for Windows”用于面向“最终用户”的安装程序,“Git for Windows SDK”用于面向Git for Windows开发人员的开发环境)。
编辑(3年后:2012年4月)
MsysGit(现在在GitHub上)是进入Git世界的轻量快速方式:解压缩存档,启动git-cmd.bat
或git-bash.bat
即可完成。
其最新版本(1.7.10,2012年4月)现在包括对UTF-8的支持,也包含在GitExtension中。
不要忘记将autocrlf
设置为false。
2012年6月:如果你想与GitHub互动,现在可以使用http://windows.github.com(另请参阅 "Designing GitHub for Windows")。
它不仅会为您配置ssh密钥(并将生成的公钥添加到您的GitHub个人资料中),而且还会安装MsysGit以进行所有git操作。
原始答案(2009年4月)
我对MsysGit的最新版本没有任何问题:
我使用选项2,这意味着我只向PATH环境变量中添加git \ bin目录,但不覆盖一些内置的Windows工具。
我成功地定义了外部工具,例如Notepad ++和WinMerge(或DiffMerge)
我成功运行了像svn2git这样的脚本,因为从MsysGit1.6.2+开始,它包括'git svn
'命令。
最后,我期待MsysGit1.6.2.3,因为它最终将包括'git filter-branch
'命令!(一个慢速版本的filter-branch,但仍然有效)。
是的。老问题,新答案:
我们已经在一个大型部署中使用MSYSgit约2年了。从本地Git库服务器传输速度一直限制在不到5 MiB/s。早期对该问题的调查表明,问题在于MSYS开发人员使用Windows XP和Windows 7,这些系统会限制从命令提示符/ bash shell 进行连接。实际上,这并不是问题所在。
我发现Darrell Mozingo的博客文章并使用Cygwin安装测试了一个大型(多GB)repo的克隆。传输速度在30 MiB / s范围内。问题在于MSYSgit使用来自2007年的古老OpenSSH二进制文件。
为此,在修复之前,我现在建议转向Cygwin(尽管git版本有点落后)。我还发现Cygwin更稳定,perl运行时更少出现内存不足的情况。
我曾尝试使用MSYS和Cygwin版本的git,老实说,我觉得两者都不是特别好用。我认为git在Windows上还没有准备好。
话虽如此,我发现MSYS版本存在一个问题,它会将非二进制文件的行结束符从UNIX风格(换行符)转换为DOS风格(回车/换行符)。你可能认为这是一个bug或一个特性,但我找不到改变这种行为的方法。(编辑:将配置变量core.autocrlf
设置为false
。感谢Brian。)
另一方面,与Cygwin版本相比,MSYS版本的git具有一些GUI功能,除非你想安装和运行整个X服务器,否则在Cygwin版本中无法使用。(感谢Joce确认这一点。)
我的印象是,MSYS版本更受欢迎,尽管这可能是因为你不需要安装Cygwin生态系统来使用它。(我同意,Cygwin非常有用。)
无论是Cygwin还是Msys Git,对于正常的使用情况都能够很好地工作。如果您想要使用git-svn等脚本,那么Cygwin更加适合。作为一个最终转向Linux的老Windows用户,我可以肯定地说,Cygwin是一个非常有用且值得拥有的工具。
然而,上下文也很重要;这些项目是什么?它们被谁使用?等等。
我目前使用Msysgit和TortoiseGit。
MsysGit的用户界面并不是我喜欢的,所以我使用像TortoiseGit这样熟悉的工具。当我在命令行上工作时(大部分时间),我使用来自Msysgit的git二进制文件。
我推荐使用msysgit,特别是与Git Extensions一起使用:它提供了一个简单的方式来配置环境:编辑器/差异/合并工具,并允许从用户界面执行高级git操作。
对一个旧问题的新回答...
我正在使用来自Windows 7 cmd shell的git 1.7.3,它运行得非常好。我同时使用git命令行和git gui,两者都已经运行良好数月。我们曾经遇到过回车/换行符问题,在加入Mac开发人员后问题变得更加严重,但这些问题已经得到解决...
core.autocrlf=true
core.safecrlf=false
并不是说你不能使用*nix-y shell,只是它并非必需品。
我曾经在Windows上使用过Cygwin Git和Msysgit。我建议使用Cygwin + Git。Cygwin 1.7(目前处于测试版)解决了一个主要问题(至少对我来说),即在使用git gui和gitk时,早期版本的Cygwin每次都会打开10个cmd窗口。这在1.7中得到了解决。Cygwin强大的shell也带来了许多Linux终端的好处。
话虽如此,Msysgit已经发展了很多,在Windows中非常有用。但我遇到了一些问题。
权限问题:在Windows本地创建的一些文件的模式为755,而在使用Msysgit时则转换为644。这将显示为修改后的文件。提交应该可以解决此问题。
CRLF:像往常一样,所有神秘的CRLF都会在Windows中引起问题。Msysgit可能会报告文件已修改。安装Msysgit时可以通过选择“保留行结尾不变”(忘记确切的文本)来解决此问题。
守护进程:是的,我仍然觉得在Msysgit中设置git守护进程很困难。
我在MSys的cygwin实现中遇到了严重的错误:一些命令,特别是rebase,很容易失败。Cygwin对我来说更加稳定。
话虽如此,这是一个月前的事情,可能已经有所改善。