これはなに
git rebase
しようとしたら、エディタが起動しなくてハマったときの解決メモ。
要点
GitのエディタにVS Codeを設定するときは、下記コマンドのように--wait
フラグを追加する必要がある。
git config --global core.editor "code --wait"
試行錯誤のメモ
git rebase
しようとしたら、エディタが起動しない。
$ git rebase -i HEAD~4
hint: Waiting for your editor to close the file... error: cannot run editor: No such file or directory
error: unable to start editor 'editor'
git configのcore.editor
が設定されていなかったのが原因だった。そのため、下記コマンドでエディタをVS Codeに設定した。
git config --global core.editor "code"
しかし、再度git rebase
を実行すると、VS Codeは起動するもののgit-rebase-todo
ファイルを開けない。「ファイルが見つからなかったため、エディターを開くことができませんでした」と言われる始末。
シェル上では実行できたかのように表記された。
$ git rebase -i HEAD~4
Successfully rebased and updated refs/heads/develop.
VS CodeのPATHもきちんと通っている。
$ code -v
1.84.0
d037ac076cee195194f93ce6fe2bdfe2969cc82d
x64
調査の結果、git-rebase-todo
ファイルを開けなかったのは、どうやらVS Codeの挙動によるものらしい。VS CodeをGitエディタとして設定する際には、--wait
フラグを追加して、Gitがコミットやリベースなどの操作を続行する前にエディタを閉じるのを待つ必要がある。つまり、git configに設定すべき値は下記になる。
git config --global core.editor "code --wait"
これにより、今度は正常にgit rebase
が実行できるようになった。めでたしめでたし。