pru*_*wan 22 windows git windows-xp msysgit
我有一个粗略的想法,git.cmd只是一个包装器(但默认添加到PATH),但我发现git.exe也可以工作,我打算用它来解决这个问题(对它的评论) ,关于XP64上的chcp).不建议出于任何原因吗?另外,首先真的需要git.cmd吗?
注意:我所指的chcp问题不是由丢失的PATH条目引起的,因为'chcp'不被识别为内部或外部命令,可操作程序或批处理文件.在Windows PC上
djs*_*djs 25
git.cmd
当前版本的msysgit中不再存在(例如1.8.0).git.cmd
是一个包装,已被一个新的包裹所取代git.exe
.这不应与实际相混淆git.exe
.
如果你看看在Git的目录%ProgramFiles(x86)%
或者%ProgramFiles%
,你会看到如下的结构:
Git
|-- bin
| |-- git.exe
|-- cmd
|-- git.exe
Run Code Online (Sandbox Code Playgroud)
包装器已经存在于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()
with shell=True
)执行该命令,或者显式运行cmd文件.现在,无论操作系统如何,我都可以使用'git'作为名称执行进程.这是因为Windows上的CreateProcess()不会执行批处理文件(.cmd
是别名.bat
),您需要调用cmd.exe
它来执行它.
man*_*lds 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随意使用,那么选择第三个选项就可以了.