作为新手git用户,当我尝试使用
进行工作时git commit -a -v
我在编辑器中输入了一条提交消息,我关闭了该文件,并收到此错误:
Aborting commit due to empty commit message.
我已经阅读了几乎所有针对这个问题的主题,改变了编辑,基本上尝试了一切,但没有任何帮助。我该怎么办?
有一件事我注意到,在使用notepad ++尝试整个过程时,无法保存文件。
可能的解决方法是:
git commit -am "SomeComment"
但是通过这样做,我觉得我有点无效使用git的目的。我想正确记录我的更改。
答案 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时所做的事情)是:
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”保存后,它在命令提示符中向我显示了此消息 ->“由于以下原因而中止提交空提交消息。” (如下图所示)
我通过提供如下所示的提交消息解决了这个问题(我们需要在 Commit TITLE 和 commit Description 之间提供 2 个空行,如下所示)
注意:以“#”开头的行是git自动生成的。
答案 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)
提交错误的解决方案
如上所示,在提交时需要输入一个提交字段,这基本上是用于版本控制和了解每次提交的更改。
如果您不输入密码,则会收到错误消息:由于提交信息为空,正在中止提交
注意:以上内容仅适用于Rstudio提交和提取文件。
答案 20 :(得分:0)
首先,请确保已正确配置您的git,以打开某种编辑器提示(Visual Studio / Sublime / Notepad ++ / Atom等),以便继续进行操作。
.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相同的窗口中打开,看起来似乎解决了这个问题。