多くの場合、複数のコミットメッセージを変更する必要はありませんが、1回または2回発生したため、これを見たことを覚えていません。他の誰かが持っていることを願っています。私がgit rebase -i HEAD~7
、期待されるリストはviで予想どおりに開きます。必要に応じてpick
値をedit
に変更してから、:wq
。
結果:Could not execute editor
core.editor
グローバルでの設定.gitconfig
はvi
です(非常に必死な動きでvim
に変更しました)。 mate
を使用してみましたが、初期リストが適切に開かれなかったため、元に戻しました。
私はv1.7.3を使用しており、提案を歓迎します。
昨日はその日のほんの1日でした。ひばりで、フルパスをviに設定することにしました(例:/usr/bin/vi
)単なる実行可能ファイルではなく。これですべてが機能します。 vi
はそれ自体で完全に実行可能であるため(私は$EDITOR
env変数もvi
)に設定されていますが、機能しており、私の技術的なカルマは最近それほど素晴らしいものではないので、神に疑問を呈すべきではありません...
次のコマンド
git config --global core.editor /usr/bin/vim
それを修正します。
[編集]
今、誰かがすでにコメントでそれを投稿していることがわかります。私のような盲目の人々にとっては、まだ役に立つことを願っています。
ここまでの他の回答とは異なり、viの絶対パスを使用してgit core.editor
configを設定するだけでは、問題を解決するには不十分でした。 (これらは既に配置されていました。)
私の状況では、viコマンドに -f
フラグを追加 することで問題が解決しました。
git config --global core.editor '/usr/bin/vi -f'
この-f
オプションが設定されたら、git rebase -i
を使用できます。コミットリストを保存して終了すると、「エディターを実行できませんでした」エラーを表示する代わりにリベースが必要に応じて進行します。
vim man page は、オプション-f
に関して述べています。
GUIバージョンの場合、Vimは起動されたシェルからフォークおよびデタッチしません。..このオプションは、編集セッションが終了するまで待機するプログラム(メールなど)でVimを実行するときに使用する必要があります。
まあ、私は知っているGUIバージョンを使用していません。 masOS Sierra 10.12.6のターミナルウィンドウでbashコマンドラインでgit
を実行しています。しかし、git rebase -i
は編集セッションが終了するのを待つため、ここで-f
オプションが必要なのはそのためだと思います。たぶん、vim(-f
なし)は、私が理解できなかった何らかの理由で、シェルからフォーク/デタッチしようとします。
この問題が発生したのは、vimのvcscommandプラグインの一部が原因でした。これらのコマンドのいずれかでvimを起動すると、終了コード1(「エラー」)が発生しました。
vi
vim
しかし、これらは終了コード0( "成功")を私に与えました:
/usr/bin/vi
/usr/bin/vim
vi -u NONE
vim -u NONE
~/.vimrc
と~/.vim
内のファイルを無効にし、それらの名前を変更してvi -c q ; echo $?
を実行することで特定のプラグインまでさかのぼって、vimを実行して終了コードを出力できました。
私にとって、それは私の.vimrcの問題でした。そのファイルの名前を一時的に変更すると修正されました。その後、.vimrcをデバッグします。これはignuの経験に非常に似ています。
何らかの理由で崇高なものを使用したい場合は、グローバル設定ファイルで次のようなことを行うことができます。
git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"
プラグインの1つに問題を突き止めるのに少し時間がかかりました。
(具体的には、 https://github.com/ervandew/supertab )
それはすべてのプラグインを自動的に更新することのマイナス面だと思います。
したがって、vimrcとプラグインの半分を無効にしてください。それでも解決しない場合、問題は他の半分にあります。
ここに示されているように、コミットを潰そうとしました https://www.youtube.com/watch?v=V5KrD7CmO4o 。 gitエディター(notepad ++)がリベース手順で開きました。しかし、コミットメッセージの修正ステップでは、「エディターを実行できませんでした」という問題が発生しました。おそらく、gitエディターの設定が間違っていたため、またWindowsシステムの標準以外の場所にnotepad ++をインストールしたために発生した可能性があります。つまり、「git config core.editor」は私にnotepad++ -multilnst- nosession
。
この問題を修正するには、次のようなフルパスを指定します。
git config --global core.editor "'C:\CustomFolder\NPP\notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
別のオプションは、nano
エディターを使用することです。
$ whereis nano
$ git config --global core.editor path/to/nano
それを修正します。
別のターミナルでリベースするためにすでにvimを開いていたときにも、この問題が発生しました。私はリベースを開始して中断し、戻ってきたときに他の端末で最初からやり直しましたが、他の場所で同じリベースの最中にいることに気付きませんでした。他のターミナルでvim rebaseセッションを終了するだけでうまくいきました。
/ usr/bin/vimが1.7.3にあったと確信していますか? 1.7.3でのみサポートされているバックアッププラグインがインストールされていて、何らかの理由で/ usr/bin/vimが突然1.7.2にダウングレードされたため、おそらくXCodeのメジャーアップデートが原因で同じ問題が発生しました。 ..
私にとっては、Windowsを使用して:現在の端末を閉じて、別の端末を開きます(win + R、「cmd」、次に「enter」を入力)、それは突然動作します。
VSコードソリューション:
git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron"
奇妙なことに、もう一度試してみるだけでうまくいきました。
Core.editorおよび$ EDITOR変数が設定されていません。