Выход из Vim без внесения изменений в Git

Когда я использую git commit --amend или git rebase -i, vim открывает для меня изменения. Если я затем передумаю и выйду из vim без внесения каких-либо изменений, все еще выполняется фиксация, которая отображается в git reflog.

Как выйти из редактора, не совершая ничего?

Ответ 1

Чтобы получить git, чтобы не изменять, когда вы выполняете git commit --amend или git rebase -i.

Просто удалите сообщение (и сохраните). Все git выполняет поиск непустого сообщения, чтобы узнать, произошло ли действительное совершение. Поскольку есть сообщение фиксации (потому что вы что-то совершили раньше), git считает, что его действительная фиксация или переадресация.

Ответ 2

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

Git (и другие такие инструменты, которые используют Vim для редактирования сообщения), прервут весь процесс (и игнорируют любые сохраненные изменения в сообщении), если редактор завершает работу с статусом выхода без успеха. Вы можете сделать это в Vim с помощью команды :cq[uit]!.

Ответ 3

:cq!

Это приведет к ошибке Vim и не сохранит никаких изменений. Ссылка в руководство Vim.