2016-10-26 148 views
20

爲了能夠在Windows上爲我的跨平臺應用程序運行測試腳本,我安裝了MSYS2並使用pacman來安裝我的測試腳本所依賴的任何軟件包。msys/git和git-for-windows/mingw-w64-x86_64-git有什麼區別?

由於MSYS2提供了一個git(msys/git)的端口,我認爲沒有必要爲Windows安裝Git。但是,MSYS2存儲庫中提供的git版本與Git for Windows提供的git版本有什麼區別?

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

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

:在這裏從一個git克隆一個Python包安裝在開發模式的virtualenv運行pip freeze

  1. MSYS/git會失敗git-for-windows/mingw-w64-x86_64-git不會失敗,所以至少在路徑處理方面有一些差異。

  2. Git for Windows的gitk和git gui開箱即用。沒有必要設置GIT_GUI_LIB_DIR環境變量as described here

它似乎git從Git的Windows存儲庫提供了最好的體驗在這一點上。

P.S.您可以通過將以下內容添加到/etc/pacman.conf,above,[mingw32],[mingw64][msys]條目來將Git for Windows的git安裝到MSYS2中。但是,安裝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的用於Windows的混帳:

pacman -S mingw-w64-x86_64-git 

我想我們沒有理由不安裝的Git在MSYS2的Windows的混帳?

編輯 Git for Windows(un)installer留下了C:\ProgramData\Git\config。這表明git位於SSL證書的錯誤位置。你可以刪除C:\ProgramData\Git\config來解決這個問題。

+0

我已經使用MSYS2的蠢貨,例如麻煩QtCreator,git和IDE之間的交互出錯,但Git For Windows工作正常。不過那是前一段時間。 – rubenvb

+0

這將是很好的,如果答案也可以詳細說明MSYS2 + git和git之間的區別。就我所見,MSYS2 + git的優點是您擁有整個MSYS2生態系統(包括pacman),而Git for Windows的優勢在於您可以獲得外殼擴展和圖形工具。有沒有可能將這些優勢結合起來? –

+1

@FlorianKusche msys/git和git-for-windows/mingw-w64-x86_64-git包都包含圖形工具(gitk和git gui)。正如問題中提到的那樣,它們在msys/git中是開箱即用的。 –

回答

2

MSYS/GIT中抵抗由MSYS2提供的動態庫鏈接以類似於cygwin的如何做(MSYS2從Cygwin的分叉)的方式提供POSIX到Windows兼容性(POSIX仿真),從而它需要MSYS2環境需要運行。

混帳換窗/ MinGW的-W64-x86_64的-混帳,另一方面,使用MinGW的編譯器,它執行的翻譯機Windows在編譯時調用,從而導致更快的二進制編譯與仿真方法相比,只需要本地Windows庫即可運行。

The difference between MSYS2 and MinGW

MSYS2二進制文件的POSIX模擬層是方便的,但是有代價的:通常,MSYS2程序noticably比它們的對應物的MinGW慢(如果有這樣的對應物)。因此,Git for Windows項目試圖提供儘可能多的組件以作爲MinGW二進制文件。

參見:How does MSYS2 differ from Cygwin?