2

我使用自己的编辑器作为我的 Git core.editor,我经常打开并运行它。当我使用它来编辑提交消息时,例如之后

git commit # no message specified

默认消息已正确打开到我的编辑器中COMMIT_MSG,但在我在编辑器中完成任何操作之前,提交继续中止。同样,自动合并打开MERGE_MSG,但在我有机会编辑它之前,合并以默认消息完成。

我可以使用已经运行的编辑器以这种方式编辑提交消息吗?消息编辑器的 Git 调用是否需要新实例才能响应我的编辑?

4

2 回答 2

2

git等待被调用的程序退出(以干净的退出状态)然后继续。在您的情况下,编辑器直接退出(并在现有窗口中显示内容),这不是git预期的。

要解决这个问题,您需要仅在完成 ​​git 提供的文件的编辑后退出编辑器(这很可能意味着关闭附加到已经存在的实例)。

于 2013-01-29T20:07:33.410 回答
2

这取决于您的编辑器。git 协议(以及大多数其他使用 EDITOR 变量的东西)使用的是打开指向临时文件的 $EDITOR,等待编辑器进程退出,然后使用临时文件的内容。

例如,对于 TextMate,将 EDITOR(或 git 的 core.editor)设置为 '/path/to/mate -w' 将告诉它等到文件关闭后再退出 mate helper 进程。你的编辑可能有类似的东西。

于 2013-01-29T20:12:20.363 回答