如何使用VS Code解决git提交错误“等待您的编辑器关闭文件…”?

126

我试着执行 git commit,但是Git给出了以下提示:

提示:等待编辑器关闭文件... /c/Users/AGT/AppData/Local/Programs/Microsoft VS Code/bin/code: line 28: /Code.exe: 没有那个文件或目录 错误:使用 -m 或 -F 选项指定提交信息。

我尝试将VS Code设置为默认编辑器,无论它是打开的还是关闭的,都得到了同样的消息。通过VS Code或命令 git commit -m "Initial commit" 进行的提交可以正常工作。
我尝试使用以下命令来更改配置路径:

  • git config --global core.editor "code --wait"
  • git config --global core.editor "'C:\Users\AGT\AppData\Local\Programs\Microsoft VS Code\Code.exe' -n -w" 以及后面的变体(这些变化在错误消息中带有“unexpected EOF while looking for matching”):
  • C:\Users\AGT\AppData\Local\Programs\Microsoft VS Code\bin
  • C:\Users\AGT\AppData\Local\Programs\Microsoft VS Code\bin\code
  • C:\Users\AGT\AppData\Local\Programs\Microsoft VS Code\Code.exe

但都没有成功。

此时的 git 状态如下:

    On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   css/app.css
        new file:   index.html
        new file:   js/app.js

如何修复在Git BASH中使用git commit命令时在Vs Code中无法正常工作的问题?这似乎是路径问题。

更新信息:我已经测试了在Sublime 3中使用git commit,它可以正常工作。


你怎么样了?你尝试下面答案中的步骤了吗? - tymtam
当我将neovim设置为默认编辑器时,我会收到类似的消息。 - Immanuel Weihnachten
2
实际上,我有一个更普遍的问题:在保存文件时退出neovim进程会挂起。这个问题似乎是由gutentags插件引起的。因此,如果你因为在编辑提交消息后退出neovim时收到“等待编辑器关闭文件…”消息而来到这里,你可以尝试移除gutentags插件。 - Immanuel Weihnachten
15个回答

118

您确认从执行 git 命令的命令行可以访问 code 吗?

您可以运行 code --version

顺便说一句,当我执行 where code 时,我得到的是 C:\Program Files\Microsoft VS Code\bin\code - 它不再安装在 %App_Data% 文件夹中。然而,如果您只指定 code --wait 而不包括路径,则这应该与此无关。

换句话说,这里是我会尝试的步骤:

  1. 确认在用于 git 的控制台中 code --version 可以正常工作
  2. git config --global core.editor "code --wait"
  3. 更改分支中的内容,然后执行 git commit。VS Code 是否启动并显示 COMMIT_EDITMSG 文件?enter image description here

2
嗨tymtam,感谢您的关注。我仍然得到了我问题的第一个错误消息。VS Code没有像您的图片那样启动。这是我使用您推荐的内容所得到的: code --version /c/Users/AGT/AppData/Local/Programs/Microsoft VS Code/bin/code: line 28: /Code.exe: No such file or directory$ where code C:\Users\AGT\AppData\Local\Programs\Microsoft VS Code\bin\code C:\Users\AGT\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd - AGT
2
当我在寻找类似问题时,我读到了关于VS Code不再安装在应用程序文件夹中的信息,但是当我尝试重新安装时,默认文件夹仍然是App。我在Program Files中尝试重新安装,但是出现了相同的错误,唯一的区别是路径变了。 code --version /c/Program Files/Microsoft VS Code/bin/code: line 28: /Code.exe: No such file or directory where code C:\Program Files\Microsoft VS Code\bin\code C:\Program Files\Microsoft VS Code\bin\code.cmd - AGT
2
你需要在路径周围加上引号,然后就可以了 :) - tymtam
12
非常感谢,你说得对,我再次尝试时仔细关注引号,并且它成功了。 很奇怪,因为我原以为我像在问题中说的那样使用了引号,但它却没有起作用。 git config --global core.editor "'C:\Users\AGT\AppData\Local\Programs\Microsoft VS Code\Code.exe' -n -w" - AGT
3
如果您使用的是Mac,并且无法从CLI访问code,则需要将其安装在PATH中:https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line - Nikita R.
显示剩余2条评论

55

git config --global core.editor /usr/bin/vim 对我很有帮助。


2
我在Mac OS上收到了这条消息,你的回答正是我正在寻找的,谢谢 :) - Sergii
如果您是通过Homebrew安装vim的话,它应该在/usr/local/bin/vim。这是对我有效的方法。 - Matt Rose
感谢您的回答。它帮助我解决了这个问题。 - kingisaac95

52

将编辑器的名称用双引号括起来会导致出现错误。请使用单引号括起来,例如:

git config --global core.editor 'vi'

或者,如果您已经使用单引号,请尝试切换到双引号。


1
如果编辑器路径中有空格,请将其放在单引号(内部)和双引号(外部)中。 - Ed Bayiates
或者,使用命令 git config --global core.editor 'vim' 来进行配置。 - Nomen Nescio
或者,使用git config --global core.editor 'vim'命令。 - undefined

5

对于默认使用Atom作为Git编辑器的人

当Atom是默认代码编辑器时,Atom和Visual Studio Code之间存在某种冲突。在Visual Studio Code中打开终端并键入git config --global core.editor "code --wait"可以解决该问题。然后,每当我在控制台中进行操作时,Visual Studio Code都会打开一个新标签页而不会崩溃。


3

任何文件都可以在任何编辑器中打开。因此,运行“ps -ax | grep vim”来检查哪个文件在哪个编辑器中打开。然后运行“kill id-of-editor”,例如:“kill 12345”。就这样。


2

我曾遇到类似的问题。对我而言,我需要移除引号。这是在Windows 11环境下使用VsCode。

我直接打开了我的git config --global文件

这是我原本的配置,但它并没有起作用:

[merge]
  tool = vscode
[mergetool "vscode"]
  cmd = "code --wait $MERGED"

我将其更改为以下内容,现在它可以正常工作:

[merge]
  tool = vscode
[mergetool "vscode"]
  cmd = code --wait $MERGED

2

如果您在使用vs code,请转到左侧的源代码控制选项卡

然后输入您的注释,按下ctrl和enter键

如果您执行git status命令,则应显示没有要提交的内容,工作树干净...这意味着它已经生效了


2
当在bash提示符中输入code --version时,会出现/c/Program Files/Microsoft VS Code/Code.exe:权限被拒绝的消息,有什么解决方法吗? - Sanjeewa

1
它期望您输入有关正在进行的提交的注释,输入注释并应提交代码。

1
也许这可以帮助某些人
对于我来说,在重新安装后,我忘记了将 vscode 添加到路径中。
要将文件或文件夹添加到路径中,请按照以下步骤操作:
搜索变量 => 环境变量 => 路径 => 编辑 => 粘贴文件或文件夹的完整路径 点击浏览并选择路径 => 点击确定并退出。

1

很奇怪,但是更新VS Code对我来说很容易解决了这个问题。希望这能帮助那些在尝试工程化解决方案之前没有尝试过“你试过重启吗?”的人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接