我正在试用Windows上的Git。我到了尝试“git commit”的地步,我得到了这个错误:

终端是哑的,但没有视觉也 编辑器定义。请提供 消息使用-m或-F选项。

所以我发现我需要一个叫做EDITOR的环境变量。没有问题。我把它设置为指向记事本。这几乎奏效了。默认的提交消息在记事本中打开。但是记事本不支持换行。我出去得到了notepad++,但我不知道如何将notepad++设置为%EDITOR%,使其与Git正常工作。

我没有嫁给notepad++。在这一点上,我不介意我使用什么编辑器。我只是希望能够在编辑器中而不是在命令行中输入提交消息(使用-m)。

那些在Windows上使用Git的人:你使用什么工具来编辑你的提交消息,你必须做什么才能让它工作?


当前回答

我需要做以下两件事来让Git在Windows中启动notepad++:

将以下内容添加到.gitconfig中: editor = 'C:/Program Files/ notepad++ /notepad++.exe' -multiInst -notabbar -nosession -noPlugin .exe 修改快捷方式以管理员身份启动Git Bash shell,然后使用该快捷方式启动Git Bash shell。我猜上下文菜单项“Git Bash here”没有启动notepad++所需的权限。

在做了以上两件事之后,它起作用了。

其他回答

我很难让Git与写字板、科莫多编辑器以及我给它的几乎所有其他编辑器合作。大多数打开以供编辑,但Git显然不会等待保存/关闭发生。

作为拐杖,我一直在做。

git commit -m "Fixed the LoadAll method"

让事情继续发展。它往往会使我的提交消息比应该的要短一些,但显然在Windows版本的Git上还有一些工作要做。

GitGUI也不是那么糟糕。它需要一点定位,但在那之后,它工作得很好。

感谢Stack Overflow社区…和一点研究,我能够得到我最喜欢的编辑器,EditPad Pro,作为msysgit 1.7.5的核心编辑器。GIT和TortoiseGit v1.7.3.0在Windows XP SP3…

按照上面的建议,我为代码编辑器添加了Bash脚本的路径…

git config --global core.editor c:/msysgit/cmd/epp.sh

然而,在对上述解决方案进行了几次失败的尝试后……我终于把它修好了。根据EditPad Pro的文档,添加'/newinstance'标志将允许shell等待编辑器输入…

在我的例子中,'/newinstance'标志是关键…

#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"

这是为我使用Cygwin和TextPad 6工作(编辑:它也与TextPad 5工作,只要你对脚本做出明显的改变),想必模型也可以用于其他编辑器:

文件~ / .gitconfig:

[core]
    editor = ~/script/textpad.sh

文件~ /脚本/ textpad.sh:

#!/bin/bash

APP_PATH=`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`
FILE_PATH=`cygpath -w $1`

"$APP_PATH" -m "$FILE_PATH"

这一行代码也同样有效:

文件~/script/textpad.sh(选项2):

"`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`" -m "`cygpath -w $1`"

我在Windows上使用Cygwin,所以我使用:

export EDITOR="emacs -nw"

-nw代表无窗口,即告诉Emacs不要尝试使用X窗口。

Emacs键绑定不能从Windows shell中为我工作,所以我只会从Cygwin shell中使用这个…(建议使用rxvt)

我更喜欢使用Emacs。设置它可能有点棘手。

下载Emacs并解压到c:\ Emacs这样的地方。 运行c: \ emacs \ bin \ addpm.exe。如果你使用windowsvista或以上版本,你需要右键点击“以管理员身份运行”。这将把可执行文件放到您的路径中。 在.emacs文件中添加(server-start)。关于将. Emacs文件放在哪里,请参阅Emacs Windows FAQ。 Git配置——全局核心。编辑emacsclientw

Git现在将在现有的Emacs进程中打开文件。您必须从c:\emacs\bin\runemacs.exe手动运行现有进程。