由于空提交消息而中止提交

时间:2012-03-15 17:39:45

标签: git

作为新手git用户,当我尝试使用

进行工作时
git commit -a -v

我在编辑器中输入了一条提交消息,我关闭了该文件,并收到此错误:

Aborting commit due to empty commit message.

我已经阅读了几乎所有针对这个问题的主题,改变了编辑,基本上尝试了一切,但没有任何帮助。我该怎么办?

有一件事我注意到,在使用notepad ++尝试整个过程时,无法保存文件。

可能的解决方法是:

git commit -am "SomeComment"

但是通过这样做,我觉得我有点无效使用git的目的。我想正确记录我的更改。

24 个答案:

答案 0 :(得分:108)

在Git配置中设置编辑器时,请确保传递参数“-w”以强制Git等待您在自定义编辑器上键入的提交消息。

git config --global core.editor "[your editor] -w"

答案 1 :(得分:26)

如果您的提交评论是以#字符开头的单行,则会发生此错误。例如,当我在提交消息文本编辑器窗口中结束以下内容时出现此错误:

#122143980 - My commit message was here. The number to the left is a Pivotal Tracker story/ticket number that I was attempting to reference in the commit message.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch [MYBRANCH]
# Your branch is up-to-date with 'origin/[MYBRANCH]'.
#
# Changes to be committed:
#   modified:   [MYFILE1]
#   modified:   [MYFILE2]
#

问题当然是我的提交消息以#字符开头,因此git将该行视为注释,因此将提交消息视为空,因为它只有评论!

修复是用#以外的字符开始我的提交消息。

在我的特定情况下,将Pivotal ID括在方括号中,使得git和Pivotal都满意:

[#122143980] My commit message here. 

答案 2 :(得分:12)

对于Visual Studio Code

git config --global core.editor "code -w"

原子

git config --global core.editor "atom -w"

对于崇高

git config --global core.editor "subl -w"

答案 3 :(得分:8)

如果您想提交正确的(长,多行评论)文档,但又不想使用-m选项,那么您可以做什么(以及我在准备my commits时所做的事情)是:

  • 单独文件'doc-commit'(或您想要称之为的任何名称)中编写您的文档(在进行更改时)
  • 使用“git commit -a -F /path/to/doc-commit”提交

简而言之,请使用单独的文件(可以在任何路径中)作为提交消息。

答案 4 :(得分:6)

我也是Git的新手。我遇到了和你一样的问题。我通过输入以下内容解决了这个问题:

git commit -a -m 'some message'

原因是git不允许在没有消息的情况下进行提交。您必须将一些消息与您的提交命令相关联。

答案 5 :(得分:5)

git不允许在没有指定消息的情况下提交。您是否在提交对话框中指定了提交消息?

请注意,以#开头的行被Git视为注释,不被视为注释而被Git忽略。

答案 6 :(得分:5)

我遇到了这个问题。我刚刚安装了1.8.0,我发现我不得不稍微修改上面的内容。我对这一切都非常陌生,但基本上似乎在提交时,它将使用content.editor,而不是core.editor,至少如果你为content.editor设置了一些东西。

所以,它是

git config --global content.editor "pico -w"

终于让我承诺了! 显然,当然,使用你使用的任何编辑器。

希望有一天这会帮助某人!

答案 7 :(得分:4)

我已将原子编辑器配置为

git config --global core.editor "atom --wait"

但是当我做的时候

git commit

当atom已经启动时,它打开了一个用于添加注释的新选项卡,但是git并没有等待我保存文件并且扔掉了#34; Aborting"消息即刻。当我关闭原子并试图再次提交时,git启动了原子并等待添加注释。

答案 8 :(得分:4)

首先删除编辑器的旧条目:

git config --global --unset-all core.editor
git config  --unset-all core.editor

设置编辑器:

  • 对于Notepad ++

    git config --global core.editor "Notepad++ -w"
    git config core.editor "Notepad++ -w"
    
  • 对于崇高

    git config --global core.editor "Notepad++ -w"
    git config core.editor "subl -w"
    

答案 9 :(得分:4)

在'Sublime'编辑器的Windows机器上,我们还可以在以下文件夹[您的驱动器内容]中的 .gitconfig 文件中添加以下行:/ users / username /

[core]
  editor = '[YOUR DRIVE LETTER]:/Program Files/Sublime Text [YOUR VERSION NUMBER]/sublime_text.exe' --wait

希望它有所帮助。

答案 10 :(得分:2)

git config --global core.editor "subl -w" -F 

这在经历了很多次反复试验后为我提供了帮助,希望有人觉得它有用。

我已经将sublime 3符号链接起来用作subl命令。

我完全一无所知,为什么-F标志在“”之外起作用了。

答案 11 :(得分:1)

确保确定首都W.

git config --global core.editor" open -a' Sublime Text 2' -W"

或使用以下命令替换未正常工作的现有命令。

git config --replace-all core.editor" open -a' Sublime Text 2' -W"

答案 12 :(得分:1)

对于Notepad ++(Windows)的评论,请执行以下操作:

1。在某处创建批处理文件(例如c:\ Users \ me \ scripts \ npp.bat)
将其写入批处理文件(取决于安装Notepad ++的位置):

"C:\Program Files\Notepad++\notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"

2. 保存批处理文件 3。打开.gitconfig(通常在您的Windows用户文件夹中),并确保在 [core] 部分下有<:p>

editor = '"c:\\Users\\me\\scripts\\npp.bat"'

或者运行:

git config --global core.editor '"c:\Users\me\scripts\npp.bat"'

4. 现在执行某种提交,它将打开Notepad ++,git commit现在将等到记事本++窗口关闭。

答案 13 :(得分:1)

我在使用 atom 时遇到了同样的问题,但我使用记事本解决了这个问题,而是使用以下命令更改了 git 的核心编辑器

git config --global core.editor "C:\\Windows\\notepad.exe"

答案 14 :(得分:1)

它期望提交消息。

对于vim :(我也是新手。到目前为止,我只使用过vim)

命令执行后,

git commit -v

您将被定向到名称为

的文件

“。git / COMMIT_EDITMSG”

这将在您的编辑器(在我的情况下为vim)中打开

您会发现很多带有注释的文本,它们看起来与您看到的文本完全一样

git status  OR
git diff

如果您注意到了,您会在顶部看到一个空行-它期望提交消息。 您可以在此处键入提交消息,然后保存并退出编辑器。完成了!

答案 15 :(得分:0)

在浪费了一个小时让它在我的 Ubuntu 上运行之后,我决定使用 Sublime Text 而不是 Atom 来编写我的提交消息。 所以,而不是:

git config --global core.editor "atom -w"

我对 Sublime 使用了相同的命令。

git config --global core.editor "subl -w"

而且效果很好。 Sublime 暂停等待提交消息。

答案 16 :(得分:0)

我刚刚遇到这个错误并且刚刚解决了它,所以我也想分享我的场景和答案。

我运行了命令 git config --global core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\""

然后当我执行 git commit 时,它会打开记事本++,但是在我给出提交消息并按“ctrl+s”保存后,它在命令提示符中向我显示了此消息 ->“由于以下原因而中止提交空提交消息。” (如下图所示)

git commit showing error - abort commit due to empty message

我通过提供如下所示的提交消息解决了这个问题(我们需要在 Commit TITLEcommit Description 之间提供 2 个空行,如下所示)

注意:以“#”开头的行是git自动生成的。

git commit opens editor which can be set by the command git config --global core.editor ""C:\Program Files (x86)\Notepad++\notepad++.exe""

答案 17 :(得分:0)

您的问题的原因是您的编辑器在您输入提交之前已关闭。我遇到了同样的问题。所以告诉你的编辑等待是解决你问题的答案。

您需要为此更改 GIT 中 core.editor 的全局变量。

在更改之前,您可能想看看现有的是什么。 然后使用以下代码将它们视为列表。

git config --global --list

我的,在 core.editor 之前没有等待。

core.editor=gedit

因此,我使用以下两个代码更改了该变量。第一行用于取消设置变量,第二行用于正确声明。

git config --global --unset-all core.editor

git config --global core.editor "code -w"

这样,我的问题就解决了,希望你也是。如果您使用

检查全局变量
git config --global --list

再次,您将看到您的 core.editor 也发生了变化,如下所示。

core.editor=gedit -w

它现在显示您的“等待”功能正在运行。

答案 18 :(得分:0)

我收到此错误,即使我使用了git config --global core.editor "code -w",它仍然不会等我关闭文件。它将立即终止。

我的问题是我早些时候git config core.editor "code"运行了此命令。

似乎core.editor(我认为是本地工作目录规范)优先于--global core.editor

如果git config --global core.editor "code -w"(或您尝试使用的任何编辑器)不适合您,请尝试省略--global

答案 19 :(得分:0)

提交错误的解决方案

enter image description here

如上所示,在提交时需要输入一个提交字段,这基本上是用于版本控制和了解每次提交的更改。

如果您不输入密码,则会收到错误消息:由于提交信息为空,正在中止提交

注意:以上内容仅适用于Rstudio提交和提取文件。

答案 20 :(得分:0)

首先,请确保已正确配置您的git,以打开某种编辑器提示(Visual Studio / Sublime / Notepad ++ / Atom等),以便继续进行操作。

  • 对于我来说,我将git配置为在Ubuntu环境中使用Visual Studio。
  • 我尝试提交更改,但由于给定的失败而失败。
  • 然后我查看了.gitconfig文件,发现我的编辑器缺少-w参数
  • 我运行了git config --global core.editor "code -w"命令并重新检查了我的.gitconfig文件,注意到-w已正确添加到那里。
  • 尝试再次提交更改,它对我有用。

希望这对像我这样的其他新手有帮助。

答案 21 :(得分:0)

当我使用完整的原子文件路径时,它不起作用,所以不要使用:

git config --global core.editor "c:/programs/atom/atom.exe -w"

我用过:

git config --global core.editor "atom -w"

,效果很好。祝你好运!

重要提示:首先,请确保原子开始从您使用的命令行直接正确地直接调用(原子)。

答案 22 :(得分:0)

我遇到了这个问题,并且发现如果我在提交后没有发表任何评论,那就会给我这个错误。如果我立即跳回主要的bash,它不会提交。只是更清楚,我使用GIT Bash,而不是其他编辑器

答案 23 :(得分:0)

我通过从打开新窗口的花哨的MacVim编辑器切换到/ user / bin / vim中的标准默认vim来解决问题,它在与调用它的shell相同的窗口中打开,看起来似乎解决了这个问题。