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

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

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

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

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


当前回答

记事本!

我很喜欢使用Vim,但由于我试图向公司介绍Git,所以我想要一些我们都拥有的东西,并且发现写字板似乎可以正常工作(即Git会等待您完成编辑并关闭窗口)。

git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'

这是在msysgit上使用Git Bash;我没有尝试从Windows命令提示符(如果这有任何不同)。

其他回答

我在多个平台上使用Git,并且我喜欢在所有平台上使用相同的Git设置。(事实上,我用Git对所有配置文件进行了发布控制,并在每台机器上放置了一个Git存储库克隆。)我想到的解决办法是:

我将编辑器设置为giteditor

git config --global core.editor giteditor

然后我在PATH中创建了一个名为giteditor的符号链接。(我有一个个人的bin目录,但在PATH中的任何地方都可以工作。)这个链接指向我现在选择的编辑。在不同的机器和平台上,我使用不同的编辑器,所以这意味着我不需要更改我的通用Git配置(.gitconfig),只需更改giteditor指向的链接。

我所知道的每个操作系统都可以处理符号链接,尽管它们可能使用不同的命令。对于Linux,你用ln -s。对于Windows,您使用cmd内置mklink。它们有不同的语法(你应该查一下),但它们的工作方式是一样的,真的。

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

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),一切正常。

如果路径中有空格,Git似乎无法找到编辑器。因此,您必须将Patrick回答中提到的批处理文件放到非空白路径中。

Atom和Windows 10

我在桌面上右键单击Atom图标,然后单击属性。 复制了起始位置路径 用Windows资源管理器找到了"atom。exe" 我在Git Bash中输入: Git配置——全局核心。编辑C: /用户/ YOURNAMEUSER / AppData /本地/ atom / app-1.7.4 / atom.exe”

注意:我把所有\都换成了/。我在我的主目录中创建了一个.bashrc,并使用/来设置我的主目录,它工作了,所以我假设/将是去的方式。

原子编辑器git git-bash windows-10

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

export EDITOR="emacs -nw"

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

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