当前位置:  开发笔记 > 编程语言 > 正文

Windows下的Git:MSYS还是Cygwin?

如何解决《Windows下的Git:MSYS还是Cygwin?》经验,为你挑选了5个好方法。

我计划将我的项目迁移到git,我现在想知道哪个是Windows下最好和/或最稳定的选项.

从我收集的内容我基本上有2.5个选项:

    MSYSgit

    在Cygwin下的git

    (又名2.5)来自Cygwin提示的MSYSgit(假设已经安装了Cygwin git).

注意:IMO Cygwin本身就是一个很大的优势,因为你可以访问几乎所有的*nix命令行工具,就像使用MSYSgit bash一样,你只能访问这些工具的一小部分.

鉴于此,您会建议什么选择?



1> VonC..:

编辑(2年后:2014年10月)

Johannes Schindelin 刚刚解释(2014年10月)msysgit被逐步淘汰:

我们现在有一个轻量级的Git for Windows SDK - 它本质上是一个通过包管理器mingw-get管理的标准MinGW/MSys系统.

我们决定只淘汰名称"msysGit"(还有同名的GitHub的组织)和上工作的Git的Windows(与相应的GitHub的组织),并使用名为"混帐的Windows"的安装目标在面向Git for Windows开发人员的开发环境中,"最终用户"和"Git for Windows SDK".


编辑(3年后:2012年4月)

MsysGit(现在在GitHub上)是你想要在Git世界中轻量级快速启动的方法:解压缩存档,启动git-cmd.bat或者git-bash.bat你已经完成了.
它的最新版本(2012年4月1.7日)现在包括对UTF-8的支持,也包含在GitExtension中.不要忘记将你设置autocrlf为假.

如果您确实缺少所有其他unix命令而不是msysgit包,只需下载一个GoW版本(Windows上的Gnu),恰当地命名为"Cygwin的轻量级替代品".
我的意思是:130 unix命令 ...

Cygwin的应该是仅适用于某些情况下,备份解决方案,喜欢的传输速度大的 Git仓库,如下所述通过增量器在他的回答.


2012年6月:如果您想与GitHub进行交互,您现在可以访问http://windows.github.com(另请参阅" 为Windows设计GitHub ").
它不仅会为您配置ssh密钥(并将生成的公钥添加到您的GitHub配置文件中),而且还会为所有git操作安装一个... MsysGit.


原始答案(2009年4月)

我对最新版本的MsysGit没有任何问题:
我使用选项2,这意味着我只将git\bin目录添加到PATH环境变量中,但不会覆盖一些内置的Windows工具.

我设法定义了Notepad ++和WinMerge(或DiffMerge)等外部工具

我确实成功运行了像svn2git这样的脚本,因为从MsysGit1.6.2 +开始,它确实包含了' git svn'命令.

最后我期待MsysGit1.6.2.3因为它将包括最后' git filter-branch'命令!(缓冲版的filter-branch,但仍然).

对于Unix命令,我更喜欢安装GnuWin32 coreutils包,并仅在我需要它时使用它们.

总而言之,我不使用Cygwin层,并设法在其基于Windows的版本MsysGit中运行Git.



2> 小智..:

是.老问题.新答案:

我们已经在大型部署中使用MSYSgit大约2年了.从本地git存储库服务器传输的速度限制在5 MiB/s以下.早期对该问题的调查表明,问题在于MSYS开发人员在Windows XP和Windows 7安全限制来自命令提示符/ bash shell的连接.事实上,这似乎不是问题所在.

我发现了Darrell Mozingo的博客文章并使用Cygwin安装测试了一个大型(许多GiB)repo的克隆.传输速度在30 MiB/s范围内.问题是MSYSgit使用了2007年的古董OpenSSH二进制文件.

为此,在修复之前,我现在建议转移到Cygwin(尽管git的版本有点落后).我还发现Cygwin更稳定,更不可能让perl耗尽内存.



3> Evan..:

我已经涉足了使用MSYS和Cygwin版本的git,并且说实话,我没有找到任何经验特别好.我只是觉得git还没准备好用于Windows.

话虽这么说,我在MSYS版本中发现的一个问题是它会将你的(非二进制)文件的行结尾从UNIX样式(换行)转换为DOS样式(回车/换行).您可能会将此视为错误或功能,但无法更改我可以找到的行为.(编辑:将配置变量设置core.autocrlffalse.感谢Brian.)

OTOH,MSIT版本的git具有一些GUI功能,除非你想安装和运行整个X服务器,否则这些功能在cygwin版本中是不可用的.(感谢Joce确认这一点.)

我的印象是MSYS版本更受欢迎,但这可能是因为您不需要安装cygwin生态系统来使用它.(我同意,cygwin非常有用.)

就个人而言,我会选择Bazaar或Mercurial,其中任何一个都可以更好地支持Windows IMO.


您可以关闭行结束翻译.您只需将core.autocrlf设置为false即可.
Bazaar也是我对Windows上Git问题的解决方案.嘿.
我正在使用msys版本,并没有遇到任何问题.
我认为最新版本的msys会要求您配置安装时如何处理行结尾.

4> Edward Z. Ya..:

Cygwin和Msys Git在正常使用情况下都能很好地工作.如果你想使用像git-svn这样的脚本,Cygwin是个更好的选择.作为一个终于跳槽到Linux的旧Windows用户,我可以肯定地说Cygwin是一个伟大的福音,值得拥有.

语境很重要; 这些是什么项目?他们是谁用的?等等.


我们谈论的是一个相当大的项目(32K +源文件)由一个相当小的团队(~10个编程)开发.并非所有这些都是精通w/*nix环境,但是日常使用的git的简单性看起来很有希望.我们还计划大量使用分支,例如One P4 changelist <=> One git branch.仅仅因为这个原因,git比Hg更有趣.我对Cygwin和MSYS的恐惧是Cygwin版本不是最新的MSYS版本.

5> 小智..:

我也测试了两个世界(CygWin和MSysgit),我的经验也是MSysgit bash中存在一些缺点.当Cygwin在同一个git repo上优雅地处理它时,无法成功运行git stash.

虽然没有深入分析,但......

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有