如果我希望Git使用它,我的提交消息编辑器是否必须启动一个新实例?

时间:2013-01-29 20:00:51

标签: git git-commit

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

之后
git commit # no message specified

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

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

2 个答案:

答案 0 :(得分:2)

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

要解决此问题,只有在完成编辑git提供的文件时才需要退出编辑器(这很可能意味着关闭附加到已存在的实例)。

答案 1 :(得分:2)

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

对于TextMate,例如,将EDITOR(或git的core.editor)设置为'/ path / to / mate -w'将告诉它在退出配合帮助程序进程之前等待文件关闭。你的编辑可能有类似的东西。