一句话:
git config --global core.editor <编辑器的启动命令行>
我建议:
git config --global core.editor nano
因为nano命令行用起来比较方便,还不用像vim一样记命令。
如果你的默认文本编辑器是Notepad++,那我建议你用上述命令换成nano
。
原因:Notepad++在打开一个文件后,它不会像一般的编辑器一样对文件“宣示主权”(即“占用”)。一般的文本编辑器打开一个文件后,这个文件无法被删除或修改(除非用文件粉碎机之类的工具“解除占用”),但是Notepad++打开一个文件后,你可以随便改这个文件,Notepad++不会阻止。
这个特性在某些情况下很有用,但是由于这个特性,它不适合做git的默认文本编辑器。
比如,我执行git rebase -i HEAD~18
,如果此时默认文本编辑器是Notepad++,是无法完成交互式编辑的:
hint: Waiting for your editor to close the file...
unix2dos: converting file <path>/.git/rebase-merge/git-rebase-todo to DOS format...
dos2unix: converting file <path>/.git/rebase-merge/git-rebase-todo to Unix format...
Successfully rebased and updated refs/heads/main.
这就是Notepad++“不占用”特性的一个缺点。git判断你的文本编辑器是否关掉了文件,依据就是这个文件是否还被“占用”着。但是Notepad++是“不占用”的,所以git打开编辑器后会直接认为你已经编辑完毕。因此,如果你用Notepad++做git的默认文本编辑器,那么你就与git的几乎所有交互式命令无缘了。
通用解决方式很简单:用上面的方法换成nano
。git for windows的mingw64是自带nano
的。