【发布时间】:2012-12-13 14:53:17
【问题描述】:
我是 GIT 新手。几天前,我从 GitHub 链接下载了适用于 Windows 的 GIT。我正在使用命令行工具 MinGW32。我对默认编辑器不满意,所以我一直在尝试设置我最喜欢的编辑器。
我按照here 的说明使用 EditPad Pro 作为我的编辑器。但我不断收到以下消息:
Aborting commit due to empty commit message.
EditPad Pro 打开一个新实例。 MinGW32 正在等待,因为我在关闭 EditPad Pro 之后才收到中止消息。当编辑器打开时,它会打开一个名为COMMIT_EDITMSG 的空白文件。当我关闭编辑器时,文件将保存到 repo 的主目录中。
我在this answer找到了一个线索,特别是这句话:
[Vim] 默认将文件保存到 .git/COMMIT_EDITMSG
如果我在关闭编辑器之前执行 Save As 将文件保存到 .git 目录,那么它可以工作。但是,这样做有两个问题:
- 我必须记住另存为
- 我没有得到 Git 默认添加到 COMMIT_EDITMSG 的有用 cmets
core.editor 的当前配置设置为:
"'D:\Program Files\JGsoft\EditPadPro5\EditPad Pro.exe' //newinstance"
我不确定说明中提到的$* 是做什么用的,但我尝试了使用和不使用它,还尝试了使用和不使用单引号/双引号的各种变体。我也尝试在 shell 脚本中设置值。在最坏的情况下,它根本不起作用(例如,甚至不会打开编辑器),最好的情况是它打开一个空白文件。
如何让我的编辑器使用 Git 在 .git 目录中创建的文件打开?
编辑:无论我是否使用$*,我都会得到完全相同的结果,而this answer 表示不需要。 This Git Pro page 在解释如何设置外部合并和差异工具时提到了它,但在解释 core.editor 配置设置时没有提到它。注意:我也试过%*。
如果需要(并且缺少)$* 变量,我认为 EditPad Pro 会打开一个空白的 Untitled 文件,而不是当前目录中的空白 COMMIT_EDITMSG 文件。问题似乎是路径。
编辑:我做了更多的实验。我的文件路径中有空格,我认为这可能会导致问题。我将我的 repo 克隆到一个名称中没有空格的新目录中,并修复了我的配置变量。它没有解决问题。但我注意到另一个问题。在我的一些测试中,加载到编辑器中的空白文件被命名为$@。
【问题讨论】:
-
为了记录,
/newinstance是 EditPad Pro 使用的command line parameter启动应用程序可以等待的新 EditPad 实例。不同的编辑器有不同的方法来指定它。换句话说,这个参数是特定于编辑器而不是 Git。 -
另请注意:在此上下文中需要双斜杠 (//newinstance)。如果没有它,EditPad Pro 会在现有实例中打开一个名为 newinstance 的空白文件。