git.cmd
ya no existe en las versiones actuales de msysgit (por ejemplo, 1.8.0). git.cmd
era una envoltura que ha sido reemplazada por una nueva envoltura llamada git.exe
. Esto no debe confundirse con el git.exe
real.
Si se echa un vistazo en el directorio de Git en %ProgramFiles(x86)%
o %ProgramFiles%
, verá la siguiente estructura:
Git
|-- bin
| |-- git.exe
|-- cmd
|-- git.exe
La envoltura ha existido en msysgit durante mucho tiempo con el fin de establecer adecuadamente el entorno para usar git desde cmd.exe. Si está utilizando el shell bash incluido, ejecutará git.exe directamente.
Puede comparar la vieja versión cmd con el nuevo envoltorio ejecutable aquí:
- git.cmd
- git.exe wrapper
que realmente no tiene que preocuparse por ninguna de esta magia, simplemente entiendo que debe llamar al contenedor desde cualquier cosa que no sea el entorno msysgit bash.Cuando agrega git a la ruta en el instalador, se agrega el directorio Git \ cmd. No recomiendo agregar todas las utilidades incluidas a la ruta del sistema, ya que esto puede causar muchos problemas, especialmente si tiene otras instalaciones de msys o cygwin. Nunca lo he intentado en la memoria reciente, pero me imagino que coloca los directorios cmd
y bin
en su ruta, con cmd
teniendo prioridad.
Para mí, hay una gran ventaja en el nuevo contenedor git.exe: hace que el código que llama a git sea más portátil. Anteriormente, si escribía un script de python que llamaba a git, tenía que ejecutar el comando con un entorno de shell (subprocess.Popen()
con shell=True
) o ejecutar el archivo cmd de forma explícita. Ahora, puedo ejecutar un proceso con 'git' como nombre, independientemente del sistema operativo. Esto es porque CreateProcess() en Windows no ejecutará un archivo por lotes (.cmd
es un alias para .bat
), necesita invocar cmd.exe
para ejecutarlo.
así que ¿es correcto decir que el uso de git.cmd hace alusión a la primera opción? – prusswan
AFAIK Sí, elegiría la segunda opción si desea utilizar git.exe desde el indicador de cmd habitual. –