直接用 git config --global core.editor "code --wait" 即可生效,但前提是 code 命令必须已加入系统 path;若 code --version 报错,则需按系统重装或注册 code 命令,并重启终端,且 --wait 参数不可省略。

直接用 git config --global core.editor "code --wait" 就能生效,但前提是 code 命令必须在终端里能运行——这一步漏掉,90% 的失败都发生在这里。
为什么 git commit 还是打开 Vim 或报错 “command not found”
根本原因不是 Git 配置错了,而是 VS Code 没把 code 命令注册进系统 PATH。
- 在终端执行
code --version,如果提示 “command not found”,说明命令行工具压根没装好 - Windows 用户:重装 VS Code 时务必勾选 “Add to PATH” 和 “Register Code as an editor” 两个选项
- macOS 用户:打开 VS Code,按
Cmd + Shift + P→ 输入并运行Shell Command: Install 'code' command in PATH - Linux 用户:通常需手动执行
/usr/share/code/bin/Install.sh(路径以实际安装位置为准) - 改完后一定要重启终端,否则 PATH 不会刷新
code --wait 中的 --wait 能不能省
不能省。省了会导致 git commit 不等你写完提交信息就直接退出,甚至报错 error: could not commit staged changes。
-
--wait让 Git 进程挂起,直到你在 VS Code 里保存并关闭编辑器窗口才继续 - 不加的话,Git 会立刻读取一个空文件或未保存内容,提交失败或提交信息为空
- 某些旧版 VS Code(--wait 支持不稳定,建议升级到最新稳定版
- 如果用的是 Windows Git Bash,确认终端不是以“管理员身份运行”,否则可能因权限问题忽略
--wait
在 Docker 容器或远程开发环境里怎么配
容器内没有桌面环境,code 命令天然不可用;这时候不能靠本地 VS Code 注册的 code,得换思路。
- Dev Container 场景:在
.devcontainer/devcontainer.json里加配置项"customizations": { "vscode": { "settings": { "git.defaultEditor": "vscode" } } } - 纯 CLI 容器(如 Ubuntu 镜像):改用轻量编辑器,例如
git config --global core.editor "nano",或安装vim.tiny - 若坚持用 VS Code Server(如
code-server),需在容器内单独安装并配置code-server的二进制,再设core.editor为对应路径,例如"code-server --wait" - 注意:容器内 Git 配置优先级是 local > global > system,确保你改的是容器内的
$HOME/.gitconfig,不是宿主机的
真正卡住人的往往不是命令本身,而是 code 命令是否真实可用、--wait 是否被终端正确传递、以及配置作用域是否落在当前 Git 执行环境中——三者缺一不可。











