Отмена коммита из-за пустого сообщения коммита - PullRequest
65 голосов
/ 15 марта 2012

Как пользователь git-новичка, когда я пытаюсь зафиксировать свою работу с

git commit -a -v

и я ввожу сообщение коммита в свой редактор, закрываю файл и получаю эту ошибку:

Aborting commit due to empty commit message.

Я прочитал почти все темы, посвященные этой проблеме, изменил редакторы, в основном все перепробовал, но ничего не помогает. Что мне делать?

Одна вещь, которую я заметил, при попытке всего процесса с notepad ++, файл не может быть сохранен.

Возможный обходной путь:

git commit -am "SomeComment"

Но, делая это, я чувствую, что сводю на нет цель использования git. Я хочу правильно задокументировать свои изменения.

Ответы [ 15 ]

109 голосов
/ 28 июля 2012

Когда вы устанавливаете редактор в конфигурации Git, обязательно передайте параметр "-w", чтобы заставить Git ждать вашего сообщения о фиксации, которое вы наберете в своем редакторе.

28 голосов
/ 13 октября 2016

Эта ошибка может произойти, если ваш комментарий о коммите представляет собой одну строку, начинающуюся с символа #. Например, я получил эту ошибку, когда у меня появилось следующее в окне текстового редактора сообщения коммита:

#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. 
12 голосов
/ 07 июля 2015

Для Visual Studio Code

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

для атома

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

Для возвышенного

git config --global core.editor "subl -w"
8 голосов
/ 16 марта 2012

Если вы хотите зафиксировать с надлежащей (длинной, многострочной) документацией, но не хотите использовать опцию -m, что вы можете сделать (и что я делаю при подготовке моих коммитов ):

  • записать вашу документацию (пока вы вносите изменения) в отдельный файл 'doc-commit' (или любое другое имя, которое вы хотите назвать)
  • commit с 'git commit -a -F /path/to/doc-commit')

Короче говоря, используйте отдельный файл (который может быть на любом пути, который вы хотите) в качестве сообщения коммита.

6 голосов
/ 11 ноября 2013

Я тоже новичок в Git.Я столкнулся с той же проблемой, что и ты.Я решил это, набрав:

git commit -a -m 'some message'

Причина в том, что git не разрешает коммит без сообщений.Вы должны связать некоторые сообщения с вашей командой commit.

5 голосов
/ 28 ноября 2012

Git не позволяет коммитить без указанного сообщения. Вы указали сообщение фиксации в диалоге фиксации?

Обратите внимание, что строки, начинающиеся с #, обрабатываются Git как комментарии и не считаются комментариями и игнорируются Git.

5 голосов
/ 14 ноября 2012

У меня была эта проблема. Я только что установил 1.8.0 ранее, и я обнаружил, что мне пришлось немного изменить вышеприведенное. Я очень новичок во всем этом, но, по сути, кажется, что при фиксации он будет использовать content.editor, а не core.editor, по крайней мере, если у вас что-то установлено для content.editor.

Итак, это было

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

это, наконец, позволило мне совершить! Очевидно, конечно, используйте любой редактор, который вы используете.

Надеюсь, это когда-нибудь кому-нибудь поможет!

4 голосов
/ 18 августа 2016

Сначала удалите старые записи редакторов:

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

Установите ваш редактор:

  • Для блокнота ++

    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"
    
4 голосов
/ 27 ноября 2015

Я настроил мой редактор атомов как

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

, но когда я сделал

git commit

, когда атом уже запущен, он открыл новую вкладку для добавления комментариев, но git нене дождался, пока я сохраню файл, и мгновенно выкинул сообщение «Aborting».Когда я закрыл атом и попытался зафиксировать еще раз, git запустил атом и ждал добавления комментариев.

4 голосов
/ 21 февраля 2013

На машине Windows для редактора Sublime мы также можем добавить следующую строку в файл .gitconfig в следующую папку [YOUR DRIVE LETTER]: / users / username /

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

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...