Featured image of post git rebaseしようとしたら、エディタが起動しなくてハマった話

git rebaseしようとしたら、エディタが起動しなくてハマった話

これはなに Link to this heading

git rebaseしようとしたら、エディタが起動しなくてハマったときの解決メモ。

要点 Link to this heading

GitのエディタにVS Codeを設定するときは、下記コマンドのように--waitフラグを追加する必要がある。

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

試行錯誤のメモ Link to this heading

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が実行できるようになった。めでたしめでたし。

Licensed under CC BY-NC-SA 4.0
最終更新 3月 31, 2024
Hugo で構築されています。
テーマ StackJimmy によって設計されています。