TortoiseGit执行git pull报错cannot spawn git: Invalid Argument 求解决方案
git.exe pull error: cannot spawn git: Invalid Argument的问题 我之前也碰到过一模一样的问题——commit和push都正常,唯独pull的时候弹出这个报错,折腾了好一阵才解决。结合你已经做过的排查,给你几个针对性的解决方向:
重新核对TortoiseGit的Git路径配置
虽然你说调整过设置,但可以再仔细检查一遍:右键仓库文件夹→TortoiseGit→Settings,找到「Git」→「General」,确认Git.exe的路径是绝对路径(比如C:\Program Files\Git\bin\git.exe),如果路径包含空格,一定要用双引号把整个路径包起来。另外可以试试切换到Git的cmd目录下的git.exe(C:\Program Files\Git\cmd\git.exe),我当时就是换了这个路径解决的问题。调整系统环境变量的Git优先级
右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统变量的「Path」里,把Git的cmd或bin目录移到最顶部,避免其他程序的git.exe干扰。修改完后一定要重启电脑,再测试pull操作。重置TortoiseGit的配置文件
有时候配置文件损坏会导致这种奇怪的交互问题:- 先关闭所有TortoiseGit相关窗口
- 找到路径
C:\Users\<你的用户名>\AppData\Roaming\TortoiseGit,备份里面的TortoiseGitConfig文件后删除它 - 重新打开TortoiseGit,从头配置Git路径和SSH客户端,再尝试pull
用Git Bash测试pull命令
打开Git Bash,切换到你的仓库目录,执行git pull命令。如果这个命令能正常运行,说明问题出在TortoiseGit和Git的交互上:- 可以在TortoiseGit设置→「Network」→「SSH客户端」,把路径改成Git自带的
ssh.exe(一般是C:\Program Files\Git\usr\bin\ssh.exe),再测试连接 - 或者右键执行pull的时候,选择「以管理员身份运行」试试
- 可以在TortoiseGit设置→「Network」→「SSH客户端」,把路径改成Git自带的
检查仓库文件夹的权限
右键仓库文件夹→「属性」→「安全」,确保当前用户拥有「完全控制」的权限。有时候权限不足会导致Git无法正常启动进程。匹配Git和TortoiseGit的版本
可能是你安装的Git版本和TortoiseGit不兼容,试试安装TortoiseGit官网推荐的对应Git版本,或者降级到一个稳定的旧版本(比如Git 2.30.x系列),重装后再测试pull功能。
内容的提问来源于stack exchange,提问作者toouur

