git commit --amend
(правильно написано) на самом деле более опасно, чем git commit -a -m "mend"
. Первый будет переписывать существующую фиксацию, заменяя ее новым фиксацией, так что это более или менее разрушительная команда. Последний, однако, будет только создать фиксацию, которую вы не намеревались сделать. Это конструктивная команда, которая не переписывает любую существующую историю, а просто добавляет к ней.
Добавление фиксации, которую вы не намеревались добавить, возможно, назойливое, но не очень проблематичное вообще. Вы можете просто отменить это совершение (без потери содержимого) с помощью git reset --soft HEAD~1
. Это приведет к сбросу указателя перехода на фиксацию раньше, не затрагивая ваш рабочий каталог.
Конечно, вы также можете отменить поправку на фиксацию, но это более разрушительная команда, с которой вам нужно быть немного осторожным.
Так что я лично не стал бы беспокоиться о том, что Гит интерпретирует это неправильно. Да, это раздражает, но это все, что нужно. Просто отмените это, когда заметите это.
То, что я лично рекомендовал бы, особенно если вы обнаружите, что исправляете фиксации чаще, для создания псевдонима для git commit --amend
. Я лично использую git amend
. Вы можете установить это с помощью следующей ocmmand:
git config --global alias.amend "commit --amend"
Вы также можете добавить -C HEAD
, если вы не хотите, чтобы вызвать редактирования, но просто хочу, чтобы сохранить первоначальный коммита (я делаю это много, так что это псевдоним, который я использую):
git config --global alias.amend "commit --amend -C HEAD"
Обратите внимание, что последствия запуска 'git commit -ammend' не так катастрофичны, как вы думаете. Исходная фиксация - это родитель того, который вы только что создали по ошибке; это никуда не денется. – Jubobs
@Jubobs Я согласен, но все же это неприятность. – codingdave
@ Marina-MSFT Пожалуйста, внимательно прочитайте. Это то, что я написал также. Btw: Im с использованием git версии 2.10.2.windows.1. – codingdave