我正在使用我自己的编辑器作为我的Git core.editor
,我经常打开并运行它。当我用它来编辑提交消息时,例如在
git commit # no message specified
默认消息正确地打开到我的编辑器中,如COMMIT_MSG
,但在我在编辑器中完成任何操作之前,提交会中止。同样,自动合并会打开MERGE_MSG
,但在我有机会编辑之前,合并会以默认消息完成。
我可以使用已经运行的编辑器以这种方式编辑提交消息吗?消息编辑器的Git调用是否需要新实例才能响应我的编辑?
答案 0 :(得分:2)
git
等待调用的程序退出(具有干净的退出状态),然后继续。在您的情况下,编辑器直接退出(并在现有窗口中显示内容),这不是git
期望的内容。
要解决此问题,只有在完成编辑git提供的文件时才需要退出编辑器(这很可能意味着关闭附加到已存在的实例)。
答案 1 :(得分:2)
这取决于你的编辑。协议git(以及使用EDITOR变量的大多数其他东西)用于打开指向临时文件的$ EDITOR,等待编辑器进程退出,然后使用临时文件的内容。
对于TextMate,例如,将EDITOR(或git的core.editor)设置为'/ path / to / mate -w'将告诉它在退出配合帮助程序进程之前等待文件关闭。你的编辑可能有类似的东西。