2012-01-20 37 views
21

我有一個粗略的想法,git.cmd只是一個包裝(但默認添加到PATH),但我發現git.exe的作品,以及我打算用它作爲解決方法issue(評論它相當於XP64上的chcp)。這是否會因爲任何原因而被推薦?另外,git.cmd真的需要在第一位?git.cmd vs git.exe - 有什麼區別,應該使用哪一個?

注:CHCP問題我指的是在'chcp' is not recognized as an internal or external command, operable program or batch file. on a Windows PC

回答

23

git.cmd當前版本的msysgit(例如1.8.0)不再存在。 git.cmd是一個包裝,已被替換爲一個新的包裝稱爲git.exe。這不要與實際的git.exe混淆。

如果採取%ProgramFiles(x86)%%ProgramFiles%看看Git的目錄,你會看到如下結構:

Git 
|-- bin 
| |-- git.exe 
|-- cmd 
    |-- git.exe 

的包裝已經msysgit爲了存在了很長一段時間,以正確設置環境從cmd.exe使用git。如果您使用的是包含的bash shell,它將直接運行git.exe。

您可以用新的可執行包裝這裏比較舊版本的CMD:

  1. git.cmd
  2. git.exe wrapper

你真的不需要擔心任何的這種神奇的,只是明白你應該從msysgit bash環境以外的任何東西中調用封裝器。當你將git添加到安裝程序的路徑中時,它就是添加的Git \ cmd目錄。我不建議將所有包含的實用程序添加到您的系統路徑中,因爲這可能會導致很多問題,特別是如果您有其他msys或cygwin安裝。我從來沒有在最近的內存中嘗試過它,但我會想象它會將cmdbin目錄放在您的路徑中,其中cmd優先。

對我來說,新的git.exe包裝有一個巨大的優勢:它使得調用git的代碼更加便攜。以前,如果我編寫了一個名爲git的python腳本,我必須在shell環境下執行命令(subprocess.Popen()shell=True),或者明確運行cmd文件。現在,無論操作系統如何,我都可以使用「git」作爲名稱執行進程。這是因爲Windows上的CreateProcess()不會執行批處理文件(.cmd.bat的別名),您需要調用cmd.exe來執行它。

5

不會造成丟失的路徑條目按照git for windows installer你在安裝過程中添加git.exe到您的路徑的選擇。你應該沒問題使用這個選項。

Option screen to select git.exe

+0

所以說,使用git.cmd提到第一個選項是正確的嗎? – prusswan

+0

AFAIK是的,如果你想從常規cmd提示符使用git.exe,我會選擇第二個選項。 –

13

有三個選項,當你安裝msysgit。

  1. 首先是沒有被放在PATH,你使用Git的猛砸。

  2. 第二是git.cmdgitk.cmd添加到PATH,這樣就可以在cmd中使用它,PowerShell中,在cygwin等,而不會影響您在Windows其他工具。 (這git.cmd是一個包裝,使你能夠做到這一點,回答這個問題)。

  3. 第三個(我最喜歡的)是在PATH中添加所有的工具和git.exe並使用它。這將影響Windows工具,並且您將能夠使用MSYS附帶的全套工具。

我一直使用第三個選項。我從來沒有見過它如何影響我(我使用Powershell和PowerShell cmdlet,從來沒有標準的Windows命令)如果你是這樣的,你想要Mingw exes在你的處置,去第三個選項,你會很好。

相關問題