Masteries

技術的なことや仕事に関することを書いていきます.

環境変数"GIT_EDITOR"にご用心

Gitを使っていて git commit などをしたときに, コミットログを編集するために開かれるエディタは, デフォルトではviですが, 任意のエディタを指定することができます. 例えばvimにしたいのであれば, git config --global core.editor vim を実行すると, ~/.gitconfig が書き換わり, 以後はvimが使われるようになります.

[core]
    editor = vim

このとき, git config --global core.editorを実行すると, 現在設定されているエディタを確認することができます:

$ git config --global core.editor
vim

Gitで使うエディタを変更するとき, 気をつける必要があるのが環境変数GIT_EDITORです. 実はこの環境変数はcore.editorの設定よりも優先されます. そのため,

$ GIT_EDITOR=nano git commit

などとすると, たとえ git config --global core.editorvim であっても, コミットログの編集のために開かれるエディタはnanoになります. 更に不幸なことに,

$ GIT_EDITOR=nano git config --global core.editor
vim

といった挙動になるので, 妙な場所で環境変数GIT_EDITORを設定していると, 一見Gitのcore.editorが効かないように感じてしまいます.

...最近vimからnvimに移行したのですが, これにはまって(GIT_EDITORvimにしていた), 数日間素のvimでコミットログを編集することを強いられてしまったので, 同じような罠にかかる人が現れないようにメモしておきます.