Windows系统中Git Bash环境变量配置异常导致CMD命令失效及Makefile执行失败的问题求助
解决Windows CMD无法执行Git命令及Goland终端Make脚本报错问题
我来帮你一步步搞定这两个关联的环境配置问题:
一、修复Windows CMD中无法执行ls等Git命令的问题
你遇到的ls命令找不到的问题,核心是环境变量里没加对Git的关键目录路径。Git的ls、grep这类Unix风格命令都在usr/bin目录下,而Git主程序在bin目录下,需要把这两个路径都加到系统环境变量里:
- 找到你的Git安装路径,默认一般是
C:\Program Files\Git(如果是32位系统可能在C:\Program Files (x86)\Git)。 - 打开系统环境变量设置:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」区域找到
Path,点击「编辑」
- 点击「新建」,分别添加以下两个路径:
C:\Program Files\Git\binC:\Program Files\Git\usr\bin
- 点击「确定」保存所有设置,必须重启CMD(或者重启电脑),新的环境变量才会生效。此时再在CMD里输入
ls,应该就能正常显示目录了。
二、修复Goland终端中Make脚本执行报错的问题
这个报错CreateProcess(NULL, sh ... failed),本质是Goland默认终端用的是Windows原生的CMD/PowerShell,它们找不到sh命令(sh是Git Bash里的程序)。有两个解决思路:
方案1:把Goland终端切换为Git Bash(推荐)
直接让Goland用Git Bash作为终端,从根源解决Unix命令的兼容性问题:
- 打开Goland,依次点击「File」→「Settings」→「Tools」→「Terminal」
- 在「Shell path」输入框中,替换默认的
cmd.exe为Git Bash的路径,比如:
(注意路径里有空格的话,必须加双引号)"C:\Program Files\Git\bin\bash.exe" - 点击「Apply」→「OK」,关闭设置窗口后重启Goland的终端,再执行
make命令,应该就能正常调用sh脚本了。
方案2:让CMD/PowerShell能找到sh命令(不推荐,兼容性差)
如果你不想切换终端,可以把Git的usr/bin路径加到系统环境变量(就是第一步里加的C:\Program Files\Git\usr\bin),然后重启Goland让它加载新的环境变量。不过这种方式下,Windows终端对Unix风格的路径、脚本语法支持还是有局限,容易出其他问题,所以更推荐方案1。
另外,也可以检查下你的Makefile里的脚本路径写法:如果用Windows路径(比如C:\Users\farsh\...),在Git Bash里可以自动转换,但在CMD里可能需要改成Unix风格路径(比如/c/Users/farsh/...),不过切换到Git Bash终端的话就不用改这个了。
内容的提问来源于stack exchange,提问作者Farshad




