Как остановить фиксацию Git, когда VI находится на экране, ожидая сообщения о фиксации?
Я попросил Git выполнить коммит из Git bash, он вызвал VI, как всегда.
Теперь я хочу отменить фиксацию, как мне избежать продолжения с фиксацией с этой точки?
Ответ 1
У вас есть два варианта:
Предоставьте пустое сообщение фиксации. Если это новая фиксация и вы еще не сохранили сообщение, вы можете просто использовать :q! (выйти без сохранения). Если вы уже сохранили (или вы исправляете предыдущую фиксацию), просто удалите все сообщение журнала и сохраните снова. Это можно сделать с помощью ggdG + :wq в Vim.
Выйдите из редактора с ненулевым кодом выхода. В Vim вы можете использовать :cq (выйти с кодом ошибки).
Стоит отметить, что вы всегда можете reset создать свою рабочую копию в состоянии, в котором она находилась, перед фиксацией с помощью git reset HEAD^.
Ответ 2
:q! не работает при изменении фиксации. Он не обновляет
commit, но он выполняет поправку:-(
:cq полностью отменяет поправку.
Ответ 3
Подводя итог:
При создании нового commit (i.e git commit) закройте с помощью :q!.
При изменении (т.е. git commit --amend) удалите сообщение фиксации (только первые несколько строк не, начиная С#), например, удерживая v и используя клавиши со стрелками для его выбора, а затем нажмите "Удалить". Закройте с помощью :wq, чтобы применить изменения! Если вы используете :q!, изменения будут потеряны, и будет использовано предыдущее сообщение фиксации.
При использовании VIM это нормально в обоих случаях, чтобы выйти с :cq - VIM выйдет с кодом ошибки, и фиксация будет прервана.