2013-03-22 2 views
0

Каков наилучший способ справиться с ситуацией «oops, я забыл включить пару файлов в предыдущую регистрацию». , , ? Вместо того, чтобы следить за ним с дополнительной регистрацией с комментарием «Ой, забыл эти файлы». , , ?Лучший способ обращения с файлами, случайно проигнорированных с предварительной проверки?

ответ

2

Ничего из этого нельзя использовать, если ошибочная фиксация уже была нажата или вытащена в любом месте; они переписывают историю и вызовут проблемы, когда дело доходит до публикации переписанных коммитов.

Оба этих решения предполагают, что вы не совершили каких-либо промежуточных коммитов.

В зависимости от того, используете ли вы достаточно последнюю версию Mercurial:

hg add <missing files> 
hg commit --amend 

Я не уверен, какая версия была введена в, экспромтом.

Предварительно amend альтернатива rollback:

hg rollback 
hg add <missing files> 
hg commit 
0

При использовании ртутный 2.2 или более поздней версии вы, вероятно, следует использовать изменить флаг hg commit --amend. Из справочной системы:

Флаг -amend может быть использован для внесения изменений в родительский элемент рабочего каталога с новым фиксатором, который содержит изменения в родительском объекте в дополнение к тем, которые в настоящее время передаются по статусу hg, если есть Любые. Старый коммит хранится в резервном комплекте в .hg/strip-backup (см. Hg help bundle и hg help unbundle о том, как его восстановить).

В противном случае вы можете использовать либо откат (не рекомендуется, так как вы переписывания истории) hg rollback:

Эта команда должна использоваться с осторожностью. Существует только один уровень отката, и нет возможности отменить откат. Он также восстановит dirstate во время последней транзакции, потеряв с тех пор любые изменения. Эта команда не изменяет рабочий каталог.

Или используйте hg backout:

Подготовить новую ревизию с эффектом REV отменяются в текущем рабочем каталоге. Если REV является родителем рабочего каталога, то этот новый набор изменений выполняется автоматически. В противном случае hg необходимо объединить изменения, и объединенный результат останется незафиксированным.