git.cmd vs git.exe - 有啥区别,应该使用哪一个?

Posted

技术标签:

【中文标题】git.cmd vs git.exe - 有啥区别,应该使用哪一个?【英文标题】:git.cmd vs git.exe - what is the difference and which one should be used?git.cmd vs git.exe - 有什么区别,应该使用哪一个? 【发布时间】:2012-02-15 08:33:42 【问题描述】:

我有一个粗略的想法,git.cmd 只是一个包装器(但默认添加到 PATH),但我发现 git.exe 也可以正常工作,我打算将其用作issue 的解决方法(相反,关于 XP64 上的 chcp)。出于任何原因根本不建议这样做吗?另外,首先真的需要 git.cmd 吗?

注意:我所指的 chcp 问题不是由缺少 PATH 条目引起的,如 'chcp' is not recognized as an internal or external command, operable program or batch file. on a Windows PC 中的

【问题讨论】:

没有 git.cmd 这样的东西。至少在我使用的 2.19.0 版本中没有。文件夹 cmd\git.exe 中有一个 git-cmd.exe 和一个 git.exe 【参考方案1】:

安装 msysgit 时有三个选项。

    首先是PATH 上没有任何内容,而您拥有可以使用 Git Bash。

    第二个是git.cmdgitk.cmd被添加到PATH中,这样你就可以在cmd、Powershell、cygwin等中使用它,而不会影响你在Windows上拥有的其他工具。 (这个git.cmd 是一个包装器,使您能够这样做,回答问题)。

    第三个(我最喜欢的)是在PATH 中添加所有工具和git.exe 并使用它。这将影响 Windows 工具,您将能够使用 MSYS 附带的全套工具。

我一直使用第三个选项。我从未见过它对我的影响(我使用 Powershell 和 powershell cmdlet,从不使用标准的 Windows 命令)如果你喜欢这样并且想要 Mingw exe 供你使用,请选择第三个选项,你会很好。

【讨论】:

【参考方案2】:

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 版本与新的可执行包装器进行比较:

    git.cmd 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 来执行它。

【讨论】:

【参考方案3】:

根据git for windows installer,您可以选择在安装过程中将 git.exe 添加到您的路径中。使用该选项应该没问题。

【讨论】:

那么说使用 git.cmd 暗示第一个选项是否正确? AFAIK 是的,如果您想在常规 cmd 提示符下使用 git.exe,我会选择第二个选项。

以上是关于git.cmd vs git.exe - 有啥区别,应该使用哪一个?的主要内容,如果未能解决你的问题,请参考以下文章

错误:无法在 Windows cmd 的 PATH 中找到 git

idea输入git命令无反应

vscode的配置

git clone --early EOF

VSCode使用git过程中遇到的问题

常看本地是否安装Git和maven工具