我试图使用Git扩展在VSCode中提交更改,但是突然,当我尝试使用Git扩展从VSCode提交时,我收到一个错误,阻止我提交,上面写着:
提交操作被取消,因为提交消息为空。
然而,我从来没有机会提供提交消息,就像我以前能够做的那样。我可以通过MacOS终端正常提交,所以这似乎是VSCode特有的问题。
会弹出一个名为COMMIT_EDITMSG
的文件。对于如何解决这个问题有什么想法吗?
我能够在VS Code导航到:
中解决这个问题。在代码;偏好比;设置
,然后搜索并取消选中"Git: Use Editor As Commit input";在这里建议:为什么COMMIT_EDITMSG打开时,我试图提交vscode?
当您从bash或其他shell会话中运行git commit
时,Git调用您选择的编辑器。1,2Git然后等待这个编辑器向Git发出完成的信号,之后Git读取编辑器此时可能已经更新的文件。但是一些编辑器立即发出完成的信号,这就是问题发生的时候。
如果您正在使用这样的编辑器,您有三个选择:
-
切换到另一个不那么糟糕的编辑器
-
找到一些方法来运行你最喜欢的编辑器,告诉它表现得更好。大多数编辑器都有一个选项,通常拼写为
w
或wait
或--wait
或-w
或类似的东西,以使它们在Git中表现良好。3参见,例如,如何修复git commit with atom text editor. -
使用
git commit
,这样它总是有一个准备好的提交消息(git commit -m
,git commit -F
等)。这可能是最糟糕的方法了。
对于VSCode,具体请参见如何使用Visual Studio Code作为git的默认编辑器?但是请注意VSCode是复杂的,并不是所有的扩展都能很好地运行。这可能就是为什么这个问题有十几个答案的原因。
1运行git var GIT_EDITOR
看看你的选择是什么。使用core.editor
中的任何一个作为git config
设置,或使用$EDITOR
或$VISUAL
或$GIT_EDITOR
作为环境变量,以更改设置。请参阅git var
文档,了解如果提供多个设置,Git如何选择使用哪个设置。
2更准确地说,git commit
查看是否提供了"预煮";提交消息,它可以直接使用该消息,而不必调用您选择的编辑器。但是这个问题只有在它使用你的编辑器并等待它的时候才会出现。
3它们的行为实际上对某些gui很好,并且这些编辑器是在编写这些gui时考虑到的。对Git来说是不好的。