Git commit терпит неудачу с Vim и GVim - PullRequest
30 голосов
/ 22 сентября 2010

Когда я пытаюсь сделать git commit -a, я получаю хороший экземпляр vim.Я набираю свое сообщение, делаю :wq, vim закрывается и на терминале появляется сообщение

Aborting commit due to empty commit message.

В соответствии с этим вопросом Я убедился, что мой core.editor говорит "gvim""(как и user.editor, fwiw), но я все еще получаю это сообщение об ошибке.

У кого-нибудь есть другая идея?

Редактировать 1 : I am в состоянии зафиксировать, указав файл.Мои сообщения слишком длинные, чтобы разумно использовать опцию -m.

Редактировать 2:

$ git config core.editor
vim
error: More than one value for the key core.editor: vim
error: More than one value for the key core.editor: gvim

Редактировать 3: Все еще с тем жепроблема, даже с core.editor отсортированы.Любые другие идеи?

$ git config core.editor
gvim -f

$ git commit
Aborting commit due to empty commit message.

Редактировать 4: Другие сообщения об ошибках.Это все, что я вижу.Я исключил несколько из моего первоначального вопроса, потому что я получил их на многих машинах, ни на одной из которых не было проблем с использованием vim / gvim с git (кроме текущей).В показанном здесь случае для core.editor установлено значение vim -f.

$ git commit

(gvim:21655): GLib-WARNING **: g_set_prgname() called multiple times

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed
Aborting commit due to empty commit message.

Когда для core.editor установлено значение gvim -f, я получаю точно такие же сообщения об ошибках, за исключением того, что число равно 21641, а не 21655. Когда я гуглю одну из строк, я не получаю совпадений (мне трудно в это поверить, но вы здесь).

Ответы [ 5 ]

71 голосов
/ 22 сентября 2010

Если вы используете gvim, вам нужно убедиться, что он остается на переднем плане, иначе он вернет управление git, прежде чем вы сможете редактировать и сохранять свое сообщение. Указание переключателя -f как части настройки редактора должно включить это.

gvim -f

У вас есть несколько значений, установленных для настройки core.editor, которая вызывает проблему. Вам нужно иметь только одну настройку.

Попробуйте:

git config --global --unset-all core.editor
git config --unset-all core.editor
git config --global core.editor "gvim -f"
6 голосов
/ 17 июня 2011

Использование gvim -f должно быть решением (работает для меня), но простая установка core.editor не обязательно заставит его использовать git.Чтобы узнать, что на самом деле использует , запустите git var GIT_EDITOR.Следует напечатать gvim -f.Если нет, отметьте man git-var и перейдите к разделу переменной GIT_EDITOR, чтобы выяснить, что может переопределить настройку core.editor.

4 голосов
/ 22 сентября 2010

Вы ставите префикс строк в сообщении о коммите с #? Если это так, Git будет рассматривать их как строки комментариев, игнорировать их и не находить содержания в вашем сообщении.

0 голосов
/ 29 августа 2015

Рассмотрите возможность использования плагина git fugitive для vim.

Вы можете выполнять наиболее часто используемую команду git прямо из (g) vim.

0 голосов
/ 19 августа 2011

Я сталкивался с подобной ошибкой.

Запуск :wq или :q! завершится с проблемами.Я пробовал другие редакторы (TextMate) и после сохранения и выхода из этого редактора фиксация будет завершена.

Обнаружено, что при закрытии документа с помощью :x фиксация завершается без перехода в gvim и всю необходимую там конфигурацию.

Резюме -

:x был мой ответ.

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