Как мне остановить коммит Git, когда ВП на экране ожидает сообщения коммита? - PullRequest
187 голосов
/ 01 декабря 2010

Я попросил Git выполнить коммит из git bash. Он вызвал VI, как это всегда происходит.

Теперь я хочу отменить коммит, как я могу предотвратить выполнение коммита из этогоуказать

Ответы [ 3 ]

310 голосов
/ 01 декабря 2010

У вас есть два варианта:

  • Предоставить пустое сообщение о коммите. Если это новый коммит, и вы еще не сохранили сообщение, вы можете просто использовать :q! (выйти без сохранения). Если вы уже сохранили (или вносите изменения в предыдущий коммит), просто удалите все сообщения журнала и сохраните снова. Это можно сделать с помощью ggdG + :wq в Vim.

  • Редактор должен выйти с ненулевым кодом выхода. В Vim вы можете использовать :cq (выйти с кодом ошибки).

Стоит отметить, что вы всегда можете сбросить свою рабочую копию до состояния, в котором она находилась до фиксации с помощью git reset HEAD^.

58 голосов
/ 30 марта 2015
  • :q! не работает при внесении изменений в коммит.Он не обновляет сообщение о коммите, но выполняет изменение :-(
  • :cq полностью отменяет изменение.
3 голосов
/ 17 апреля 2015

Подводя итог:

  • При создании нового коммита (т. Е. git commit) выходить с использованием :q!.
  • При внесении поправок (то есть git commit --amend) удалите сообщение фиксации (только первые несколько строк не , начинающиеся с #), например, удерживая v и используя клавиши со стрелками для выбора это и затем нажав Удалить. Выйдите с :wq, чтобы применить изменения ! Если вы используете :q!, изменения будут потеряны, и будет использовано предыдущее сообщение о коммите.

При использовании VIM в обоих случаях можно выйти с помощью :cq - VIM завершит работу с кодом ошибки и фиксация будет прервана.

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