You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让git commit执行$GIT_EDITOR时保持工作目录为当前目录?

解决Git Commit时编辑器工作目录被修改的问题

Git 默认会把编辑器的工作目录切换到提交信息临时文件所在的目录,要保持为执行git commit时的原始 Shell 目录,有两种简单的实现方式:

方法1:自定义编辑器包装脚本

  1. 创建一个名为git-editor-wrapper.sh的脚本,内容如下:
#!/bin/sh
# 切换回执行git commit时的原始工作目录
cd "$GIT_COMMIT_WORKING_DIR" || exit
# 启动默认编辑器并传递Git传入的文件参数
exec "$EDITOR" "$@"
  1. 给脚本添加执行权限:
chmod +x git-editor-wrapper.sh
  1. 将Git的默认编辑器设置为这个脚本(替换成你的脚本实际路径):
git config --global core.editor '/full/path/to/git-editor-wrapper.sh'

方法2:直接通过Git配置命令实现

无需单独写脚本,直接在Git配置里指定带目录切换的命令:

git config --global core.editor 'cd "$GIT_COMMIT_WORKING_DIR" && "$EDITOR"'

如果你的默认编辑器带有启动参数(比如vim -n),可以直接调整命令:

git config --global core.editor 'cd "$GIT_COMMIT_WORKING_DIR" && vim -n'

验证方式

执行git commit打开编辑器后,在编辑器内查看当前工作目录(比如Vim中输入:pwd,VS Code中打开终端查看),应该显示你执行git commit时的原始目录。

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:29:50