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

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

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

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

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


当前回答

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上使用Git的人:你使用什么工具来编辑你的提交消息,你必须做什么才能让它工作?

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

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

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

我发现了一个漂亮的简单的解决方案张贴在这里-虽然可能有一个错误的路径,你必须复制的“subl”文件由作者给出。

我运行的是Windows 7 x64,我必须把“subl”文件放在我的/Git/cmd/文件夹中才能使它工作。

不过,它的效果很好。

添加sublime git配置全局核心。编辑器“C:\Program Files\Sublime Text 3\sublime_text.exe”

以下是Cygwin的解决方案:

#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}

如果没有路径,则不传递路径 如果path为空,则传递空路径 如果path不为空,请转换为Windows格式。

然后我设置这些变量:

export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'

编辑器允许脚本与Git一起工作 GIT_EDITOR允许脚本使用Hub命令

这是更严重问题的一个症状。值得注意的是,你有一些设置TERM=dumb。其他不能正常工作的是less命令,它表示您没有一个功能齐全的终端。

这似乎最常见的原因是将TERM设置为全局Windows环境变量中的某个值。对我来说,当我安装草莓Perl时出现了这个问题,关于这个问题的一些信息是关于msysgit bug以及几个解决方案的。

第一个解决方案是在您的~/中修复它。Bashrc补充道:

export TERM=msys

你可以在Git Bash提示符中这样做:

echo "export TERM=msys" >> ~/.bashrc

另一个解决方案,最终是我所做的,因为我不关心Strawberry Perl在我的环境设置中添加TERM=dumb的原因,是按照msysgit错误报告的注释中的指示删除TERM=dumb。

控制 面板/系统/高级/环境 变量……(或类似,取决于 你的Windows版本)在哪里 设置Sticky环境变量 在Windows上。默认情况下,TERM不是 集。如果TERM设置在这里,那么你 (或者你有一个程序 已安装-例如草莓Perl) 设置它。删除那个设置,还有你 应该没问题。

类似地,如果您使用Strawberry Perl并且关心CPAN客户端或类似的东西,您可以不使用TERM=dumb,而在~/中使用未设置的TERM。Bashrc文件,它将具有类似于设置上面的显式术语的效果。

当然,所有其他解决方案都是正确的,因为你可以使用git config -global core。$MYFAVORITEEDITOR以确保Git在需要为你启动一个编辑器时使用你最喜欢的编辑器。