![](/img/trans.png)
[英]How to build 64bit Qt 5.3 for Windows 7 x64? Is there any differences between builds with MinGW-w64 and MSVS?
[英]What are the differences between msys/git and git-for-windows/mingw-w64-x86_64-git?
為了能夠在 Windows 上為我的跨平台應用程序運行測試腳本,我安裝了 MSYS2 並使用 pacman 來安裝我的測試腳本所依賴的任何包。
由於 MSYS2 提供了 git (msys/git) 的端口,因此我認為沒有必要為 Windows 安裝 Git。 但是 MSYS2 存儲庫中提供的 git 版本與 Git for Windows 提供的版本之間有什么區別?
到目前為止,我注意到了這些差異:
在開發模式下安裝了來自 git clone 的 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 不會失敗,因此至少在路徑處理方面存在一些差異。
Git for Windows 的 gitk 和 git gui 開箱即用。 無需按照此處所述設置GIT_GUI_LIB_DIR
環境變量。
在這一點上,來自 Git for Windows 存儲庫的 git 似乎提供了最佳體驗。
PS您可以通過添加以下為在MSYS2的Windows的混帳混帳安裝/etc/pacman.conf
, 上面的[mingw32]
, [mingw64]
和[msys]
條目。 但是安裝 Git for Windows SDK 可能是一個更好的主意,它基本上是 MSYS2 的一個特殊版本,包括 Git for Windows。 否則, 此處還描述了以下(以及更多)過程。
[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
),您可以為 Windows 的 git 安裝 Git:
pacman -S mingw-w64-x86_64-git
我想沒有理由不在 MSYS2 中為 Windows 的 git 安裝 Git?
編輯Git for Windows (un)installer 留下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 二進制文件的 POSIX 仿真層很方便,但需要付出代價:通常,MSYS2 程序明顯比它們的 MinGW 對應程序慢(如果有這樣的對應程序)。 因此,Git for Windows 項目試圖提供盡可能多的組件作為 MinGW 二進制文件。
另請參閱: MSYS2 與 Cygwin 有何不同?
git-for-windows/git issue 2688添加了一個更新的(2020 年)觀點,來自 Git for Windows 的維護者Johannes Schindelin :
Git for Windows 的目的真的是將 Git 帶到 Windows。
雖然這意味着我們必須發布相當多的類 Unix 工具,但這並不意味着我們將包含這些工具,除非 Git 自己的操作需要它們,或者至少出於歷史原因(活躍貢獻者的需求有時是一個因素)決定是否包含工具)。
話雖如此,您真正要尋找的是MSYS2 。
Windows 版 Git 利用 MSYS2 並附帶其文件的子集。 MSYS2 甚至運行一個名為“pacman
”的包管理系統來安裝更多工具(包括 Git...)。
如問題中所述,文檔是“ 在 MSYS2 中正確安裝”,但最近已更改,因為Pacboy 已從基本安裝中刪除。
所以它需要添加回來:
# 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
安裝msys2
到git-bash
,我能夠安裝tmux
(正如我在 OP 中計划/顯示的那樣),它對我來說工作正常。
因此,只要擁有
/var/lib/pacman/local
文件,msys2
和pacman
就可以在git-bash
(我的意思是 git-for-windows)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.