首页/开发/Git 与协作速查/git 编辑器配置 core.editor
Git 基础与命令88 条

git 编辑器配置 core.editor

交互场景(提交信息、交互变基)打开的编辑器由 core.editor 决定,GIT_EDITOR 环境变量可临时覆盖。

Git 与协作速查开发更新于 2026-10-13

git 编辑器怎么配

写提交信息、交互变基、生成合并提交等交互场景里,Git 打开的编辑器由配置决定:core.editor 是主配置键,GIT_EDITOR 环境变量可临时覆盖,未配置时依次回退到 VISUAL、EDITOR,最后退回内置 vi。图形界面编辑器必须带等待参数,否则 Git 在内容确认前就继续流程;同一台机器上的不同身份可以用条件包含分开配置。

基本信息

配置键core.editor(可写入全局或单仓库配置)
覆盖顺序GIT_EDITOR > core.editor > VISUAL > EDITOR > 内置 vi
相关键sequence.editor 单独控制交互变基的待办列表编辑
查看生效值git var GIT_EDITOR
适用平台无桌面环境(SSH 服务器)只能用终端编辑器
服务器建议优先 nano 或 vim,GUI 编辑器在无桌面环境会直接失败

典型使用场景

  • 不习惯默认 vim 的人:改成自己顺手的编辑器,减少提交时的摩擦。
  • GUI 用户:配置 code --wait 或对应 IDE 的等待模式,保证内容被读取。
  • 交互变基频繁:用 sequence.editor 单独换工具,不动全局设置。
  • 脚本与非交互环境:用 GIT_EDITOR=true 或直接 -m 传信息,防止卡住。
  • 多台机器多身份:全局配一套,个别仓库再覆盖。

常用示例

常用示例
git config --global core.editor 'code --wait'   # VS Code:等窗口关闭再继续
git config --global core.editor vim
git config --global sequence.editor vim         # 交互变基单独指定
GIT_EDITOR=nano git commit                      # 仅本次生效
git var GIT_EDITOR                              # 查看当前生效值

常见编辑器配置值

编辑器配置值说明
VS Code'code --wait'必须加 --wait
Sublime Text'subl -n -w'-w 表示等待
Nanonano轻量,适合服务器
Vim / Neovimvim / nvim终端环境自带
JetBrains 系'idea --wait'同样需要等待参数
提交信息编辑器里保存退出即生效;清空全部内容再退出会中止本次提交。终端编辑器不依赖桌面环境,建议至少在服务器上留一个兜底;改完配置用 git var GIT_EDITOR 复核生效值,它会受仓库级配置覆盖,排查时按完整优先级链检查。

易错点

  • 没配置且环境变量为空时 Git 退回 vi,不熟悉的人容易卡住(退出用 :wq,放弃用 :q!)。
  • 图形编辑器没加等待参数,Git 立即按「未编辑」处理,出现空提交信息被拒或内容截断。
  • 在无桌面环境的服务器上配了 GUI 编辑器,提交时直接失败;准备终端编辑器兜底。
  • 自动化脚本忘加 GIT_EDITOR=true 或 -m 参数,流程阻塞在编辑器等待输入上。全局配了 GUI 编辑器却用在无桌面的服务器上,提交会直接失败;按机器分别配置或用 includeIf 区分。

数据来源与参考

  • Git 官方文档:git-var(GIT_EDITOR)
  • Pro Git 2nd Edition · 1.6 编辑器配置
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌