簡體   English   中英

msys/git 和 git-for-windows/mingw-w64-x86_64-git 有什么區別?

[英]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 提供的版本之間有什么區別?

到目前為止,我注意到了這些差異:

  1. 在開發模式下安裝了來自 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 不會失敗,因此至少在路徑處理方面存在一些差異。

  2. 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 和 MinGW 的區別

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安裝msys2git-bash ,我能夠安裝tmux (正如我在 OP 中計划/顯示的那樣),它對我來說工作正常。

因此,只要擁有/var/lib/pacman/local文件, msys2pacman就可以在git-bash (我的意思是 git-for-windows)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM