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

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

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

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

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


当前回答

感谢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 "$*"

其他回答

编辑c:\Users\YourUser文件夹中的.gitconfig文件并添加:

[core]
editor = 'C:\\Program files\\path\\to\\editor.exe'

不管怎样,我只是在玩这个,发现下面的工作对我来说很好:

git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"

我不认为CMD喜欢单引号,所以你必须使用双引号“来指定空格嵌入字符串参数”。

Cygwin(我相信它是Git的Bash的底层平台)另一方面喜欢“和”;你可以指定一个类似cmd的路径,使用/而不是\,只要字符串是引号,即在这个例子中,使用单引号。

-m覆盖/表示使用多个编辑器,不需要在末尾加%*。

当使用远程挂载的主驱动器(Samba共享、NFS,…)时,您的~/。Git文件夹在所有系统中共享,这可能会导致几个问题。因此,我更喜欢用脚本来确定正确系统的正确编辑器:

#!/usr/bin/perl
# Detect which system I'm on and choose the right editor
$unamea = `uname -a`;
if($unamea =~ /mingw/i){
    if($unamea =~ /devsystem/i){#Check hostname
        exec('C:\Program Files (x86)\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
    }
    if($unamea =~ /testsystem/i){
        exec('C:\Program Files\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
    }
}
$MCEDIT=`which mcedit`;
if($MCEDIT =~ /mcedit/){
    exec($MCEDIT, @ARGV);
}
$NANO=`which nano`;
if($NANO =~ /nano/){
    exec($NANO, @ARGV);
}
die "You don't have a suitable editor!\n";

人们可能会考虑使用普通的shell脚本,但我使用的是Perl,因为它随msysgit一起提供,而且您的类unix系统通常也会提供一个。 将脚本放在/home/username/bin中,该脚本应该添加到.bashrc或.profile中的PATH中。一旦添加了git配置-全局核心。编辑器giteditor。pl你有正确的编辑器,无论你在哪里。

我只是直接使用TortoiseGit。它与我的PuTTY公钥完美地集成在一起。

它有一个完美的提交消息编辑器。

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

在我的git编辑器和通用代码编辑器中,我发现在Windows和Linux中最有用的工具是Sublime Text 3。它工作得很好,但需要一点设置才能让它正确,所以我在这里完整地记录了这一点:

如何让Git使用我选择的编辑器进行提交?- Sublime Text 3作为Git编辑器的最佳设置(Windows和Linux指令)

关于我的主编辑器的边注:对于大型项目,我使用Eclipse作为我的主编辑器,Sublime Text 3作为我的git编辑器,当我需要使用它的高级功能时,如多光标模式,垂直/列选择模式等。对于中小型项目,我只使用Sublime Text 3本身。有关Eclipse的设置说明,请参阅我的PDF文档。