Стоит добавить, что вам нужно нажать Esc перед входом :q!для выхода из vim.
M_Merciless
Ответы:
332
У вас есть два варианта:
Предоставьте пустое сообщение о коммите. Если это новый коммит, и вы еще не сохранили сообщение, вы можете просто использовать :q!(выйти без сохранения). Если вы уже сохранили (или вносите изменения в предыдущий коммит), просто удалите все сообщения журнала и сохраните снова. Это можно сделать с помощью ggdG+ :wqв Vim.
Пусть редактор выйдет с ненулевым кодом выхода. В Vim вы можете использовать :cq(выйти с кодом ошибки).
Стоит отметить, что вы всегда можете сбросить свою рабочую копию в состояние, в котором она находилась до фиксации с git reset HEAD^.
: cq это бизнес. По какой-то причине git пашет независимо от того, использую ли я: q!
Sirex
2
git reset HEAD ^
отменяет
2
: д! вероятно, не работает, потому что там уже есть предопределенное сообщение, вы просто редактируете его.
Папипо
Икота: если требуется git reset HEAD^больше, ваша оболочка может интерпретировать ^ как продолжение строки. Попробуйте git reset "HEAD^", git reset HEAD^^или git reset HEAD~1вместо этого, ответьте на этот вопрос: stackoverflow.com/questions/14203952/git-reset-asks-more
Джейк Стивенс-Хаас,
76
:q!не работает при внесении изменений в коммит. Он не обновляет сообщение о коммите, но выполняет изменение :-(
Я хотел бы добавить еще +1. Я был здесь много раз, когда моя поправка обнаружила неправильный коммит.
Wyrmwood
8
Подводить итоги:
При создании нового коммита (то есть git commit) прекратите использование :q!.
При внесении изменений (т. Е. git commit --amend) Удаляйте сообщение фиксации (только первые несколько строк, не начинающиеся с #), например, удерживая v и используя клавиши со стрелками, чтобы выделить его, а затем нажав Delete. Выйти, :wqчтобы применить изменения ! Если вы используете :q!изменения, они будут потеряны и будет использовано предыдущее сообщение о коммите.
При использовании VIM в обоих случаях можно выйти :cq- VIM завершит работу с кодом ошибки и фиксация будет прервана.
:q!
для выхода из vim.Ответы:
У вас есть два варианта:
Предоставьте пустое сообщение о коммите. Если это новый коммит, и вы еще не сохранили сообщение, вы можете просто использовать
:q!
(выйти без сохранения). Если вы уже сохранили (или вносите изменения в предыдущий коммит), просто удалите все сообщения журнала и сохраните снова. Это можно сделать с помощью ggdG+:wq
в Vim.Пусть редактор выйдет с ненулевым кодом выхода. В Vim вы можете использовать
:cq
(выйти с кодом ошибки).Стоит отметить, что вы всегда можете сбросить свою рабочую копию в состояние, в котором она находилась до фиксации с
git reset HEAD^
.источник
git reset HEAD^
больше, ваша оболочка может интерпретировать ^ как продолжение строки. Попробуйтеgit reset "HEAD^"
,git reset HEAD^^
илиgit reset HEAD~1
вместо этого, ответьте на этот вопрос: stackoverflow.com/questions/14203952/git-reset-asks-more:q!
не работает при внесении изменений в коммит. Он не обновляет сообщение о коммите, но выполняет изменение :-(:cq
полностью отменяет поправку.источник
Подводить итоги:
git commit
) прекратите использование:q!
.git commit --amend
) Удаляйте сообщение фиксации (только первые несколько строк, не начинающиеся с #), например, удерживая v и используя клавиши со стрелками, чтобы выделить его, а затем нажав Delete. Выйти,:wq
чтобы применить изменения ! Если вы используете:q!
изменения, они будут потеряны и будет использовано предыдущее сообщение о коммите.При использовании VIM в обоих случаях можно выйти
:cq
- VIM завершит работу с кодом ошибки и фиксация будет прервана.источник