Я ищу git commit --amend
аналог Mercurial, то есть способ изменить коммит, с которым связана моя рабочая копия. Меня интересует только последний коммит, а не произвольный ранний коммит.
Требования к этой процедуре внесения поправок:
по возможности, он не должен требовать каких-либо расширений. Он не должен требовать расширений не по умолчанию , то есть расширений, которые не поставляются с официальной установкой Mercurial.
если обязательство изменить - один из моих нынешних филиалов, новый руководитель создавать не следует. Если коммит не является головой, может быть создан новый руководитель.
процедура должна быть безопасной, так что если по каким-либо причинам изменение не удастся, я хочу восстановить ту же рабочую копию и состояние хранилища, что и до внесения изменений. Другими словами, если само изменение может потерпеть неудачу, должна существовать отказоустойчивая процедура для восстановления рабочей копии и состояния хранилища. Я имею в виду «сбои», которые лежат в природе процедуры внесения изменений (например, конфликты), а не проблемы, связанные с файловой системой (например, ограничения доступа, невозможность заблокировать файл для записи, ... )
Обновление (1):
- процедура должна быть автоматизируемой , поэтому она может выполняться клиентом с графическим интерфейсом без какого-либо вмешательства пользователя.
Обновление (2):
- файлы в рабочем каталоге не должны быть затронуты (могут быть блокировки файловой системы на некоторых измененных файлах). Это особенно означает, что возможный подход ни в коем случае не может потребовать чистого рабочего каталога.