我计划将我的项目迁移到git,我现在想知道哪个是Windows下最好和/或最稳定的选项.
从我收集的内容我基本上有2.5个选项:
MSYSgit
在Cygwin下的git
(又名2.5)来自Cygwin提示的MSYSgit(假设已经安装了Cygwin git).
注意:IMO Cygwin本身就是一个很大的优势,因为你可以访问几乎所有的*nix命令行工具,就像使用MSYSgit bash一样,你只能访问这些工具的一小部分.
鉴于此,您会建议什么选择?
编辑(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.
是.老问题.新答案:
我们已经在大型部署中使用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耗尽内存.
我已经涉足了使用MSYS和Cygwin版本的git,并且说实话,我没有找到任何经验特别好.我只是觉得git还没准备好用于Windows.
话虽这么说,我在MSYS版本中发现的一个问题是它会将你的(非二进制)文件的行结尾从UNIX样式(换行)转换为DOS样式(回车/换行).您可能会将此视为错误或功能,但无法更改我可以找到的行为.(编辑:将配置变量设置core.autocrlf
为false
.感谢Brian.)
OTOH,MSIT版本的git具有一些GUI功能,除非你想安装和运行整个X服务器,否则这些功能在cygwin版本中是不可用的.(感谢Joce确认这一点.)
我的印象是MSYS版本更受欢迎,但这可能是因为您不需要安装cygwin生态系统来使用它.(我同意,cygwin非常有用.)
就个人而言,我会选择Bazaar或Mercurial,其中任何一个都可以更好地支持Windows IMO.
Cygwin和Msys Git在正常使用情况下都能很好地工作.如果你想使用像git-svn这样的脚本,Cygwin是个更好的选择.作为一个终于跳槽到Linux的旧Windows用户,我可以肯定地说Cygwin是一个伟大的福音,值得拥有.
语境很重要; 这些是什么项目?他们是谁用的?等等.
我也测试了两个世界(CygWin和MSysgit),我的经验也是MSysgit bash中存在一些缺点.当Cygwin在同一个git repo上优雅地处理它时,无法成功运行git stash.
虽然没有深入分析,但......