我刚接触GIT。几天前,我从GitHub的链接下载了Windows版本的GIT。我正在使用命令行工具MinGW32。默认编辑器让我感到不舒服,所以我一直在尝试设置我的最爱编辑器。
我按照这里的说明来设置EditPad Pro作为我的编辑器。但是我一直收到以下消息:
由于提交信息为空,提交中止。
EditPad Pro会打开一个新实例。因为只有在关闭EditPad Pro后才会收到中止消息,所以MinGW32一直在等待。当编辑器打开时,它会打开一个名为COMMIT_EDITMSG
的空文件。当我关闭编辑器时,该文件将保存到存储库的主目录中。
在这个回答中,我找到了线索,特别是这句话:
[Vim]默认将文件保存到.git/COMMIT_EDITMSG。
如果我在关闭编辑器之前使用另存为将文件保存到.git目录中,那么它就可以正常工作。然而,这样做存在两个问题:
- 我必须记得另存为
- 我无法获得Git默认添加到COMMIT_EDITMSG中的有用注释
core.editor
的当前配置设置为:
"'D:\Program Files\JGsoft\EditPadPro5\EditPad Pro.exe' //newinstance"
我不确定指南中提到的$*
是用来做什么的,但我尝试了带或不带它以及带或不带单/双引号等各种组合。我还尝试在shell脚本中设置值。最坏的情况下,它根本不起作用(例如,甚至无法打开编辑器),而最好的情况下它会打开一个空文件。
如何让我的编辑器打开Git在.git目录中创建的文件?
编辑:无论我是否使用$*
,结果都完全相同,而此答案表示它不需要。 这个 Git Pro 页面在解释如何设置外部合并和差异工具时提到了它,但在解释core.editor
配置设置时没有提到它。注意:我还尝试了%*
。
如果需要$*
变量(并且缺失),我认为EditPad Pro会打开一个空的Untitled文件而不是当前目录中的空COMMIT_EDITMSG文件。问题似乎是路径。
编辑:我进行了更多实验。我文件路径中有空格,我认为这可能会导致问题。我将我的存储库克隆到没有空格的新目录中,并修复了我的配置变量。它没有解决问题。但我注意到另一个问题。在一些测试中,加载到编辑器中的空文件名为$@
。
/newinstance
是命令行参数,用于启动一个新的EditPad实例,应用程序可以等待。不同的编辑器有不同的指定方式。换句话说,这个参数是特定于编辑器而不是Git的。 - toxalot