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

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

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

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

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


当前回答

根据VonC的建议,这对我很有效(差点把我逼疯了):

git config --global core.editor "'C:/Program Files (x86)/Sublime Text 3/subl.exe' -wait"

省略-wait可能会导致问题,特别是如果你正在使用Gerrit,并且更改id必须手动复制到提交消息的底部。

其他回答

我只是遇到了同样的问题,却找到了不同的解决方案。我正在

error: There was a problem with the editor 'ec'

我有VISUAL=ec,在我的路径上有一个名为ec.bat的批处理文件,其中包含一行:

c:\emacs\emacs-23.1\bin\emacsclient.exe %*

这让我可以用ec <filename>从命令行编辑文件,并且拥有VISUAL set意味着大多数unix程序也会选择它。Git搜索路径的方式似乎与我的其他命令不同——当我在进程监视器中查看Git提交时,我看到它在ec和ec.exe路径上的每个文件夹中查找,但没有ec.bat。我添加了另一个环境变量(GIT_EDITOR=ec.bat),一切正常。

我更喜欢使用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手动运行现有进程。

我的PortableGit 1.6运行良好,但在升级到PortableGit 1.7 Windows版本后,我遇到了一些问题。有些Git命令可以打开notepad++ .exe,但有些不能,尤其是Git rebase的行为不同。

问题是有些命令运行Windows的cmd进程,有些命令使用Unix的cmd进程。我想给启动属性notepad++编辑器,所以我需要有一个自定义脚本。我的解是这个。

Create a script to run an appropriate text editor. The script looks weird, but it handles both the Windows and Unix variation. c:/PortableGit/cmd/git-editor.bat #!/bin/sh # Open a new instance function doUnix() { "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar $* exit } doUnix $* :WINCALL "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar %* Set the global core.editor variable The script was saved to git/cmd folder, so it's already in a gitconsole path. This is mandatory as a full path may not work properly. git config --global core.editor "git-editor.bat"

现在我可以运行git commit -a和git rebase -i master命令。如果你在Git Windows工具中遇到问题,可以尝试一下。

Vim/gVim很适合我。

>echo %EDITOR%

c:\Vim\Vim71\vim.exe

这是为我使用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`"