git.cmd
больше не существует в текущих версиях msysgit (например, 1.8.0).git.cmd
была оболочкой, которая была заменена новой оболочкой с именем git.exe
.Это не следует путать с фактическим git.exe
.
Если вы посмотрите на каталог Git в %ProgramFiles(x86)%
или %ProgramFiles%
, вы увидите следующую структуру:
Git
|-- bin
| |-- git.exe
|-- cmd
|-- git.exe
Оболочка долгое время существовала в msysgit, чтобы правильно настроить среду для использования git из cmd.exe.Если вы используете включенную оболочку bash, она запустит git.exe напрямую.
Вы можете сравнить старую версию cmd с новой исполняемой оболочкой здесь:
- git.cmd
- Оболочка git.exe
Вам не нужно беспокоиться об этой магии, просто поймите, что вам следует позвонитьобертка от всего, кроме среды msysgit bash.Когда вы добавляете git к пути в установщике, добавляется каталог Git \ cmd.Я не рекомендую добавлять все включенные утилиты в системный путь, так как это может вызвать много проблем, особенно если у вас есть другие установки msys или cygwin.На самом деле я никогда не пробовал это в недавней памяти, но я бы предположил, что на вашем пути будут размещены каталоги cmd
и bin
, причем приоритет будет cmd
.
Для меня есть одинОгромное преимущество новой оболочки git.exe: она делает код, вызывающий git, более переносимым.Ранее, если бы я написал скрипт на python с именем git, мне пришлось бы либо выполнить команду в среде оболочки (subprocess.Popen()
с shell=True
), либо явно запустить файл cmd.Теперь я могу просто выполнить процесс с именем «git» независимо от операционной системы.Это связано с тем, что CreateProcess () в Windows не будет запускать пакетный файл (.cmd
- псевдоним для .bat
), для его запуска необходимо вызвать cmd.exe
.