如何使 Git 使用我选择的编辑器进行提交?

我更愿意在 Vim 中编写我的提交消息,但是它正在 Emacs 中打开它们。

如何配置 Git 始终使用 Vim?请注意,我要全局执行此操作,而不仅仅是针对单个项目。

答案

如果要设置对 Git 的编辑,请执行(你不需要两者):

  • 在您的 Git 配置中设置core.editorgit config --global core.editor "vim"
  • 设置GIT_EDITOR环境变量: export GIT_EDITOR=vim

如果要为 Git 和其他程序设置编辑器,请设置标准化的VISUALEDITOR环境变量 *:

export VISUAL=vim
export EDITOR="$VISUAL"

* 不必同时设置两者,但是某些程序可能未使用更正确的VISUAL 。参见VISUAL vs. EDITOR


对于 Sublime Text :将其添加到.gitconfig--wait很重要(它允许在 sublime 中键入文本,并将等待保存 / 关闭事件。)

[core]
    editor = 'subl' --wait

可以用可执行文件的完整路径替换 “subl”,但通常在正确安装后才可用。

复制粘贴此:

git config --global core.editor "vim"

如果您想知道自己在做什么。从man git-commit

环境和配置变量

将从GIT_EDITOR环境变量, core.editor配置变量, VISUAL环境变量或EDITOR环境变量( core.editor顺序)中选择用于编辑提交日志消息的EDITOR

在 Ubuntu 和 Debian(感谢 @MichielB)上,也可以通过运行以下命令来更改默认编辑器:

sudo update-alternatives --config editor

这将提示以下内容:

There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
* 3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number:

在 Windows 7 中,在添加 “Sublime” 编辑器时,它仍然给我一个错误:

由于提交消息为空而中止提交。

Sublime 无法保持焦点。

为了解决这个问题,我在 c:/ users / username / 文件夹中打开了. gitconfig 文件,并在双引号之外添加了带有 --wait 选项的以下行。

[core]
      editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait

希望它对与 Sublime 面临类似问题的人有所帮助。

在 Windows 7 中,将编辑器设置为 Notepad ++

  • 打开任何文本编辑器。
  • 打开此文件: C:\Users\YOUR_USERNAME\.gitconfig
  • 将此部分添加到底部:

[core]
    editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe'
  • 保存并关闭文件。
  • 使用git commit ,只需编写git commit并按Enter 。它将弹出打开记事本 ++。
  • 将提交消息写在文件顶部,然后保存并关闭文件。做完了!

将 Visual Studio Code(vscode)设置为默认的 git 编辑器

git config --global core.editor "code --wait"

而且,如果您正在与使用命令行的设计师合作,那么 Pico 会不知道捷径;)

git config --global core.editor "pico"

要么

export VISUAL=pico
export EDITOR=pico

在 Mac OSX 10 中将 Sublime Text 2 设置为 Git 提交编辑器

运行以下命令:

$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"

要不就:

$ git config --global core.editor "subl -w"

Atom 作为您的 git 编辑器

git config --global core.editor "atom --wait"

需要将 Atom 配置为从命令行运行才能使上述工作正常进行:

OS X :从 Atom 安装 Shell 命令:菜单栏 > Atom > 安装 Shell 命令

Windows :无需任何操作 - 默认情况下,atom 配置为从命令行运行

Windows:将记事本设置为默认的提交消息编辑器

git config --global core.editor notepad.exe

按 Ctrl + S保存您的提交消息。要丢弃,只需关闭记事本窗口而不保存即可。

如果您点击保存的快捷方式,然后决定中止,请转到 “文件”->“另存为”,然后在打开的对话框中将 “另存为类型” 更改为 “所有文件(*。*)”。您将看到一个名为 “COMMIT_EDITMSG” 的文件。删除它,然后关闭记事本窗口。

编辑:或者,更容易地,从打开的记事本窗口中删除所有内容,然后单击保存。 (感谢mwfearnley的评论!)

我认为,对于诸如提交消息之类的小写文章,记事本效果最好,因为它很简单,带有 Windows,可立即打开。当您有大量的插件和东西时,甚至连您的崇高精神都可能需要一两秒钟才能被激发。