为了能够在Windows上运行我的跨平台应用程序的测试脚本,我安装了MSYS2并使用pacman来安装我的测试脚本所依赖的任何软件包。
由于MSYS2提供了一个git(msys / git)端口,我认为也不需要为Windows安装Git。但是MSYS2存储库中提供的git版本与Git for Windows提供的版本有什么区别?
到目前为止,我注意到了这些差异:
msys / git在virtualenv上运行pip freeze
时会失败,其中在开发模式下安装了git clone的Python包:
FileNotFoundError: [WinError 3] The system cannot find the path specified: '/c/users/user/documents/project/.git\\..'
git-for-windows / mingw-w64-x86_64-git不会失败,因此在路径处理方面至少存在一些差异。
Git for Windows&#gitk和git gui开箱即用。无需设置GIT_GUI_LIB_DIR
环境变量as described here。
似乎Git for Windows存储库中的git提供了最佳体验。
P.S。您可以在/etc/pacman.conf
,above [mingw32]
,[mingw64]
和[msys]
条目中添加以下内容,在MSYS2中安装Git for Windows的git。但是,安装Git for Windows SDK可能是个更好的主意,包括Git for Windows basically a special edition of MSYS2。否则,下面的过程(以及更多)也是described here。
[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
我认为没有理由不在MSYS2中安装Git for Windows&#git?
编辑 Git for Windows(联合国)安装程序遗留在C:\ProgramData\Git\config
之后。这会将git指向SSL证书的错误位置。您可以删除C:\ProgramData\Git\config
来解决此问题。
答案 0 :(得分:4)
msys / git 链接到MSYS2提供的动态库,以类似于cygwin的方式提供POSIX到Windows兼容性(POSIX仿真)(MSYS2从cygwin派生),因此,它需要MSYS2环境才能运行。
另一方面,git-for-windows / mingw-w64-x86_64-git 是使用MinGW编译器编译的,它在编译时执行到本机Windows调用的转换,这导致与仿真方法相比,二进制速度更快,并且只需要运行本机Windows库。
来自The difference between MSYS2 and MinGW:
MSYS2二进制文件的POSIX仿真层很方便,但需要付出代价:通常情况下,MSYS2程序明显慢于MinGW程序(如果有这样的副本)。因此,Git for Windows项目尝试提供尽可能多的组件作为MinGW二进制文件。
答案 1 :(得分:0)
git-for-windows/git issue 2688从Git for Windows Johannes Schindelin的维护者那里添加了一个更新的(2020)观点:
用于Windows的Git的目的实际上是将Git引入Windows。
尽管这意味着我们必须交付许多类似Unix的工具,但这并不意味着我们将包括此类工具,除非Git自己的操作需要它们,或者至少出于历史原因(积极贡献者的需求是有时是决定是否包含工具的一个因素。
话虽如此,您真正要寻找的是MSYS2。
Windows的Git利用MSYS2并附带其文件的子集。 MSYS2甚至使用名为“pacman
”的软件包管理系统来安装更多工具(包括Git ...)。
问题中提到的文档为“ Install inside MSYS2 proper”,但是自Pacboy is removed from the base installation起,它最近发生了变化。
因此需要使用以下方式将其重新添加:
# pacman -Fy
:: Synchronizing package databases...
[...]
# pacman -F pacboy.exe
# pacman -F pacboy
msys/pactoys-git r2.07ca37f-1 (base base-devel)
usr/bin/pacboy
usr/share/bash-completion/completions/pacboy
然后:
将
/var/lib/pacman/local
安装过程中的msys2
文件复制到git-bash
,可以安装tmux
(按照我在OP中的计划/显示),对我来说很好。
因此,拥有
/var/lib/pacman/local
个文件就是msys2
和pacman
在git-bash
中工作(我的意思是git-for-windows)。