Каков наилучший способ справиться с ситуацией «oops, я забыл включить пару файлов в предыдущую регистрацию». , , ? Вместо того, чтобы следить за ним с дополнительной регистрацией с комментарием «Ой, забыл эти файлы». , , ?Лучший способ обращения с файлами, случайно проигнорированных с предварительной проверки?
ответ
Ничего из этого нельзя использовать, если ошибочная фиксация уже была нажата или вытащена в любом месте; они переписывают историю и вызовут проблемы, когда дело доходит до публикации переписанных коммитов.
Оба этих решения предполагают, что вы не совершили каких-либо промежуточных коммитов.
В зависимости от того, используете ли вы достаточно последнюю версию Mercurial:
hg add <missing files>
hg commit --amend
Я не уверен, какая версия была введена в, экспромтом.
Предварительно amend
альтернатива rollback
:
hg rollback
hg add <missing files>
hg commit
При использовании ртутный 2.2 или более поздней версии вы, вероятно, следует использовать изменить флаг hg commit --amend
. Из справочной системы:
Флаг -amend может быть использован для внесения изменений в родительский элемент рабочего каталога с новым фиксатором, который содержит изменения в родительском объекте в дополнение к тем, которые в настоящее время передаются по статусу hg, если есть Любые. Старый коммит хранится в резервном комплекте в .hg/strip-backup (см. Hg help bundle и hg help unbundle о том, как его восстановить).
В противном случае вы можете использовать либо откат (не рекомендуется, так как вы переписывания истории) hg rollback
:
Эта команда должна использоваться с осторожностью. Существует только один уровень отката, и нет возможности отменить откат. Он также восстановит dirstate во время последней транзакции, потеряв с тех пор любые изменения. Эта команда не изменяет рабочий каталог.
Или используйте hg backout
:
Подготовить новую ревизию с эффектом REV отменяются в текущем рабочем каталоге. Если REV является родителем рабочего каталога, то этот новый набор изменений выполняется автоматически. В противном случае hg необходимо объединить изменения, и объединенный результат останется незафиксированным.