Вы хотите команду hg rollback
, но смотрите ниже, если вы используете Mercurial 2.2 или новее.
Команда отката удалит последнюю транзакцию из вашего репозитория. Коммит это сделка, так что вы можете использовать это как
% hg commit -m 'My elaburate bugfix.' foo.c foo.h
% hg rollback
% hg commit -m 'My elaborate bugfix.' foo.c foo.h
После отката файлы снова будут рассматриваться как модифицированные, и это означает, что второй фиксации сохранит те же изменения, как первый, но с лучше зафиксировать сообщение.
Осторожно:hg rollback
является более мощным, чем просто «uncommit» функции, и вы можете использовать его, чтобы выбросить работу, если вы не будете осторожны. Для того, чтобы выбросить коммита сделать
$ hg commit -m 'My big and very difficult bugfix'
$ hg pull --update
$ hg rollback
Теперь вы потеряли последний коммит вы сделали и так как вы обновили рабочую копию какой-либо другой редакции, изменения в том, что совершающие являются ушли. Поэтому вы должны использовать только hg rollback
, чтобы отменить фиксацию, если вы уверены, что hg commit
действительно была последней командой, которая работала на рабочей копии.
Кроме того, если вы не дали сообщение о фиксации в командной строке, вы не можете просто дважды нажать стрелку вверх, чтобы повторить фиксацию после откат. Тем не менее, Mercurial 1.5 и более поздние будут сохранять ваше последнее сообщение о фиксации в .hg/last-message.txt
, чтобы вы всегда могли найти его снова после откат.
Mercurial 2.2 имеет новый --amend
флаг для hg commit
. Это позволит вам внести изменения в последнее совершение с новыми изменениями. Он просто включает изменения, перечисленные в hg status
, в родительский коммит, как если бы вы отскакивали назад и исправлялись снова.
Закрыть, но не совсем. 'bzr revert' оставит все файлы на месте, готовые к повторной передаче. –
Вы имеете в виду «bzr uncommit»? –
ошибка, да, это правильно ... Спасибо. –