При выполнении интерактивного ребазирования в командной строке с редактором, настроенным на emacs (тот, который включен в macOS, emacs 22.1.1), если я использую control-g в emacs при редактировании сообщения коммита для сквоша, emacs получаетубит.Почему это произошло?
Это происходит только при использовании второго вызова emacs для редактирования сжатого сообщения о коммите, а не первого, который редактирует список задач rebase.Например, если вы сделаете интерактивную перебазировку с emacs в качестве редактора, появится
$ EDITOR=emacs git rebase -i somebranch
emacs, позволяющий вам редактировать список задач перебазирования.Если вы отредактируете его таким образом, чтобы раздавить коммит,
p somehash
p othersha
s thirdsha
Если вы нажмете control-g на этом этапе, все будет в порядке.Используя control-x control-s, вы можете сохранить и продолжить, затем git rebase снова вызовет emacs, чтобы отредактировать сообщение коммита для уничтожения двух последних коммитов.Если вы используете control-g, то emacs немедленно прекратит работу, и вы вернетесь к приглашению оболочки.Вы часто используете control-g в emacs, как если бы вы использовали esc в vim.
Я протестировал это с vim и pico, и у них не было проблем с control-g при редактировании сообщения коммита.Я также попытался с новой учетной записью пользователя убедиться, что я не установил что-то странное в файлах оболочки или init-файлах emacs.