msysgit和Cygwin + git之间的区别?

why*_*why 30 git cygwin msysgit

msysgit和Cygwin + git有什么区别?

现在我正在使用msysgit,但我不喜欢Git Bash(你不能调整大小或复制/粘贴)所以我在想切换到Cygwin,因为那时我可以使用mintty.

Von*_*onC 44

编辑2018:

自从我的2010-2012至2014年答案,2015年Git for Windows使用msys2,我在这里详述.

请参阅" msys,msys2和msysgit如何相互关联? ".


编辑(2年后: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 "作为面向Windows开发人员的Git的开发环境.

2年后更新:2012年7月

Msysgit在这里留下来,除非你需要加几百MB的Cygwin的,你真的不需要Cygwin的只是使用的Git在Windows上.
如果你想访问GitHub上,你会得到一个包("混帐的Windows" +注册您在GitHub上的帐户+一个不错的GUI SSH密钥)与GitHub的窗户.

双方的Gitmsysgit是在GitHub上.
msysgit.github.com页清楚地说明之间的区别:

Git for Windows徽标 <----------> MsysGit标志
" Git for Windows ":Git的纯用户 " MsysGit ":适用于测试人员,开发人员,自定义安装程序维护人员

另请参见msysgit FAQ:

"MSysGit"中的这个"MSys"是什么东西?

MSys是一个Windows环境,提供Unix类型的shell和Perl解释器.因为Git的许多部分仍然没有用C语言编写,而是shell和Perl脚本,Git for Windows需要这样的环境.

因此,我们使用最小版本的MSys发布Git for Windows.

MSys也需要构建Git,因为我们重新使用Git上游使用的相同的Unix类型设置.我们提供了一个更完整的MSys环境,包括GCC,作为构建环境(因此被命名为''msysGit'').

我们将Git编译为纯粹的MinGW程序,即除了标准Windows库之外没有任何链接依赖性的程序.
因此,除非你需要使用仍然只作为shell或Perl脚本实现的Git的任何部分,否则你可以运行普通的git.exe.


原答案:2010年6月

a /您可以在Git bash中调整大小和复制粘贴,就像在任何其他Windows Shell中一样.

b /你可能正在使用"Git for windows",而不是msysgit.来自维基:

  • msysGit是编译Git for Windows的开发环境.它是完整的,在某种意义上你只需要安装msysGit,然后就可以构建Git了.无需安装任何第三方软件.
  • Git for Windows是一个安装Git的安装程序 - 只有Git.

很容易看出差异:

  • Git的安装程序有前缀Git-,
  • msysGit安装程序的前缀是msysGit-.

另一个迹象是msysGit安装程序有两种形式:fullinstall和netinstall.
此外,msysGit C:\Program Files默认情况下不安装.
但msysGit附带gcc了GNU C编译器.

c /来自MSysGitHerald10:

记得:

  • MinGW实际上是Microsoft Runtime上非常薄的编译时层; 因此,MinGW程序是真正的Windows程序,没有Unix风格路径或POSIX细节的概念,例如fork()调用.
  • 相比之下,MSys是Cygwin(这是旧版本)的精简版本,其唯一目的是提供足够的POSIX层来运行bash.

而这并不总是欢迎:

在Windows上工作时,我不喜欢msysGit,顾名思义,它依赖于MSYS和Unix世界的工具.我相信Git发行版中的所有程序都应该成为针对特定平台编译的二进制文件,而不是依赖于shell解释器或第三方语言,如Tcl/Tk.

尽管如此,它远远优于2007 年Cygwin安装的第一个Git.