git.cmd 与 git.exe - 有什么区别以及应该使用哪一个?

2023-12-30

我粗略地认为 git.cmd 只是一个包装器(但默认添加到 PATH 中),但我发现 git.exe 也可以工作,我打算用它作为解决方法issue http://code.google.com/p/msysgit/issues/detail?id=358(关于 XP64 上的 chcp 的评论)。出于任何原因根本不推荐这样做吗?另外,git.cmd 真的需要吗?

注意:我提到的 chcp 问题不是由缺少 PATH 条目引起的,如“chcp”不被识别为内部或外部命令、可操作程序或批处理文件。在 Windows 电脑上 https://stackoverflow.com/questions/8142058/chcp-is-not-recognized-as-an-internal-or-external-command-operable-program-or


git.cmd当前版本的 msysgit 中不再存在(例如 1.8.0)。git.cmd是一个包装器,已被一个名为的新包装器取代git.exe。这不要与实际情况混淆git.exe.

如果你看一下 Git 目录%ProgramFiles(x86)% or %ProgramFiles%,您将看到以下结构:

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

包装器在 msysgit 中已经存在很长时间了,以便正确设置从 cmd.exe 使用 git 的环境。如果您使用附带的 bash shell,它将直接运行 git.exe。

您可以在此处将旧的 cmd 版本与新的可执行包装程序进行比较:

  1. git.cmd https://github.com/msysgit/msysgit/blob/Git-1.7.9-preview20120201/cmd/git.cmd
  2. git.exe 包装器 https://github.com/msysgit/msysgit/blob/master/src/git-wrapper/git-wrapper.c

您实际上不需要担心任何这种魔法,只需了解您应该从除 msysgit bash 环境之外的任何地方调用包装器即可。当您将 git 添加到安装程序中的路径时,会添加 Git\cmd 目录。我不建议将所有包含的实用程序添加到系统路径中,因为这可能会导致很多问题,特别是如果您安装了其他 msys 或 cygwin。我最近从未真正尝试过它,但我想它既可以cmd and bin路径中的目录,其中cmd优先。

对我来说,新的 git.exe 包装器有一个巨大的优势:它使调用 git 的代码更加可移植。以前,如果我编写了一个名为 git 的 python 脚本,我必须使用 shell 环境执行该命令(subprocess.Popen() with shell=True) 或显式运行 cmd 文件。现在,我可以执行一个以“git”为名称的进程,而不管操作系统是什么。这是因为 Windows 上的 CreateProcess() 不会执行批处理文件(.cmd是一个别名.bat),你需要调用cmd.exe来执行它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git.cmd 与 git.exe - 有什么区别以及应该使用哪一个? 的相关文章

随机推荐