msys / git和git-for-windows / mingw-w64-x86_64-git有什么区别?

为了能够在Windows上为我的跨平台应用程序运行testing脚本,我安装了MSYS2并使用pacman来安装我的testing脚本依赖的任何软件包。

由于MSYS2提供了一个git(msys / git)的端口,我认为没有必要为Windows安装Git。 但是,MSYS2存储库中提供的git版本与Git for Windows提供的git版本有什么区别?

到目前为止我注意到这些差异:

  1. 在开发模式下安装git克隆的Python包的virtualenv上运行pip freeze时,msys / git会失败:

     FileNotFoundError: [WinError 3] The system cannot find the path specified: '/c/users/user/documents/project/.git\\..' 

    git-for-windows / mingw-w64-x86_64-git不会失败,所以在path处理方面至less有一些差异。

  2. Git for Windows的gitk和git gui开箱即用。 这里没有必要设置GIT_GUI_LIB_DIR环境variables。

从Git的Windows仓库似乎git提供了在这一点上的最佳体验。

PS你可以在MSYS2上安装Git for Windows的git,在[mingw32][mingw64][msys]条目上面join[msys] 。 但是,安装Git for Windows SDK可能更好一些,它基本上是MSYS2的特别版本,包括适用于Windows的Git。 否则,下面的程序(和更多)也在这里描述 。

 [git-for-windows] Server = https://dl.bintray.com/$repo/pacman/$arch [git-for-windows-mingw32] Server = https://dl.bintray.com/git-for-windows/pacman/i686 

在这之后(也许是一个pacman -Sy ),你可以安装Git for Windows的git:

 pacman -S mingw-w64-x86_64-git 

我想没有理由不在Windows的git中安装Git在MSYS2?

编辑 Windows(un)安装程序的Git留下了C:\ProgramData\Git\config 。 这点git在SSL证书的错误位置。 你可以删除C:\ProgramData\Git\config来解决这个问题。

msys / git与MSYS2提供的动态库链接,以类似于cygwin(MSYS2从cygwin派生)的方式提供POSIX到Windows的兼容性(POSIX仿真),因此它需要MSYS2环境存在跑。

另一方面, git-for-windows / mingw-w64-x86_64-git使用MinGW编译器进行编译,该编译器在编译时执行本机Windows调用的转换,与仿真方法相比,并且只需要本地Windows库即可运行。

从MSYS2和MinGW的区别 :

MSYS2二进制文件的POSIX仿真层很方便,但是代价是:通常情况下,MSYS2程序明显比MinGW的程序要慢(如果有这样的对应的话)。 因此,Git for Windows项目试图提供尽可能多的组件作为MinGW二进制文件。

另请参阅: MSYS2与Cygwin有何不同?