在VS Code中执行Git Commit时出现NoPermissions (FileSystemError)错误
Git提交时VS Code无法读取COMMIT_EDITMSG的权限问题修复
问题描述
我是Git新手,尝试将VS Code配置为core.editor。在终端使用git commit -m "commit message"可成功提交,但使用git commit想在VS Code中输入提交信息时,VS Code弹出错误:
编辑器无法打开,意外错误:无法读取文件'/filepath/.git/COMMIT_EDITMSG' (NoPermissions (FileSystemError): 发生未知错误,请查看日志获取详细信息。)
使用环境:
- Git版本:2.38.0
- VS Code版本:1.77.2
已尝试操作:
- 通过
git config core.editor确认VS Code是默认编辑器(返回预期的code --wait)。 - 在VS Code中执行Shell Command:Install 'code' command in PATH。
- 卸载并重新安装PATH中的'code'命令。
- 完全卸载并重新安装VS Code。
- 将VS Code从下载文件夹移至应用程序文件夹。
- 删除COMMIT_EDITMSG文件(但会重新生成,再次尝试仍报错)。
- 检查整个目录权限,确认拥有读写权限。
- 将默认编辑器改为TextEdit,此时使用
git commit可成功在TextEdit中输入提交信息。
另外,可通过git config --global -e在VS Code中正常打开.gitconfig文件。
可行修复方案
1. 给VS Code添加完全磁盘访问权限(macOS)
关闭VS Code,右键点击应用程序目录中的VS Code图标→「显示简介」,勾选「完全磁盘访问权限」,重启VS Code后重试git commit。
2. 修改core.editor的配置参数
尝试用完整路径调用VS Code,避免PATH路径的权限问题:
git config --global core.editor "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code --wait"
或者添加--user-data-dir参数指定用户目录:
git config --global core.editor "code --wait --user-data-dir=$HOME/.vscode"
3. 检查code命令的可执行权限
执行以下命令确认code命令的权限:
ls -l $(which code)
如果权限不足,执行:
chmod +x $(which code)
4. 禁用VS Code扩展排查干扰
重启VS Code到无扩展模式:
code --disable-extensions
此时执行git commit,如果能正常打开文件,说明是某个扩展导致的问题,逐个启用扩展排查定位。
5. 调整Git的共享仓库权限设置
执行以下命令修改Git的临时文件权限配置:
git config --global core.sharedRepository group
如果仅当前仓库有问题,去掉--global参数针对单个仓库设置。
内容的提问来源于stack exchange,提问作者mizDawg
相关产品推荐
相关产品推荐

