2

私は自分のエディターをGitとして使用していますcore.editorが、これはすでに開いて実行していることがよくあります。コミットメッセージを編集するためにそれを使用するとき、例えば

git commit # no message specified

デフォルトのメッセージは、として正しくエディタに開かれますが、エディタCOMMIT_MSGで何かを実行する前に、コミットが続行されて中止されます。同様に、自動マージが開きますがMERGE_MSG、編集する前に、デフォルトのメッセージでマージが完了します。

すでに実行されているエディターを使用して、この方法でコミットメッセージを編集できますか?メッセージエディターのGit呼び出しでは、編集に応答するために新しいインスタンスが必要ですか?

4

2 に答える 2

2

それはあなたの編集者次第です。git (および EDITOR 変数を使用する他のほとんどのもの) が使用するプロトコルは、一時ファイルを指す $EDITOR を開き、エディター プロセスが終了するのを待ってから、一時ファイルの内容を使用することです。

たとえば、TextMate の場合、EDITOR (または git の core.editor) を '/path/to/mate -w' に設定すると、mate ヘルパー プロセスを終了する前に、ファイルが閉じられるまで待機するように指示されます。あなたの編集者は似たようなものを持っているかもしれません。

于 2013-01-29T20:12:20.363 に答える
2

git呼び出されたプログラムが (正常な終了ステータスで) 終了するのを待ってから続行します。あなたの場合、エディターは直接終了します (そして、既存のウィンドウにコンテンツを表示します)。これはgit期待どおりではありません。

この問題を解決するには、git によって提供されたファイルの編集が終了したときにのみエディターを終了する必要があります (これは、既存のインスタンスへのアタッチをオフにすることを意味します)。

于 2013-01-29T20:07:33.410 に答える