我有一个粗略的想法,git.cmd只是一个包装器(但默认添加到PATH),但我发现git.exe也可以工作,我打算用它来解决这个问题{{3 (注释,相反,关于XP64上的chcp)。不建议出于任何原因吗?另外,首先真的需要git.cmd吗?
注意:我所指的chcp问题不是由issue
中缺少的PATH条目引起的答案 0 :(得分:25)
git.cmd
(例如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版本与新的可执行文件包装器进行比较:
你真的不需要担心任何这种魔法,只要明白你应该从msysgit bash环境以外的任何东西调用包装器。将git添加到安装程序中的路径时,它是添加的Git \ cmd目录。我不建议将所有包含的实用程序添加到系统路径中,因为这会导致很多问题,尤其是如果您安装了其他msys或cygwin。我从来没有在最近的记忆中尝试过它,但我想它会将cmd
和bin
目录放在你的路径中,cmd
优先。
对我来说,新的git.exe包装器有一个巨大的优势:它使得调用git的代码更具可移植性。以前,如果我编写了一个调用git的python脚本,我必须使用shell环境(subprocess.Popen()
和shell=True
)执行命令,或者显式运行cmd文件。现在,无论操作系统如何,我都可以使用'git'作为名称执行进程。这是因为Windows上的CreateProcess()不会执行批处理文件(.cmd
是.bat
的别名),您需要调用cmd.exe
来执行它。
答案 1 :(得分:13)
安装msysgit时有三个选项。
首先,PATH
没有任何内容, 使用Git Bash。
第二个是将git.cmd
和gitk.cmd
添加到PATH
,以便您可以在cmd,Powershell,cygwin等中使用它,而不会影响您拥有的其他工具在Windows上。 (这个git.cmd
是一个包装器,你可以这样做,回答这个问题)。
第三个(我最喜欢的)是在git.exe
中添加所有工具和PATH
并使用它。这将影响Windows工具,您将能够使用MSYS附带的全套工具。
我一直使用第三种选择。我从未见过它如何影响我(我使用的是Powershell和powershell cmdlet,而且从不使用标准的Windows命令)如果你是这样的,你想要Mingw exes供你使用,那么选择第三个选项就可以了。
答案 2 :(得分:5)
根据git for windows installer,您可以选择在安装过程中将git.exe添加到路径中。使用该选项应该没问题。