Как разблокировать в Mercurial для моего последнего коммита (пока не выдвинут)
У меня такая ситуация:
Я отправил файлы a,b,c,d. Теперь я обнаружил, что по ошибке я отправил файлы a и b; поэтому, прежде чем отправлять эти изменения, я хочу сделать uncommit файлы a и b, чтобы я мог нажать только c и d. Может кто-нибудь сказать мне, как это сделать с помощью команд mercurial.
Здесь uncommit означает, что я не хочу использовать "hg out -p", а после этого искать изменения и делать все вручную.
3 ответа
Предполагая, что вы не выполняли никаких других транзакций в вашем хранилище с момента фиксации файлов, я думаю, что вы можете сделать это как 2 этапа:
hg rollback
hg commit filec filed
hg rollback
следует удалить только что сделанный вами коммит, но оставить файлы как измененные. затем hg commit filec filed
следует зафиксировать файлы с именем filec
& filed
, Очевидно, вы должны заменить эти имена файлов именами ваших реальных файлов.
Вероятно, стоит упомянуть, что вы должны быть осторожны с hg rollback
- он изменяет историю, поэтому при неправильном использовании он может потерять данные.
hg rollback
и вы можете найти больше в Главе 9. Поиск и исправление ошибок в Mercurial: Полное руководство
В Mercurial вы можете использовать команду возврата, которая создает набор изменений, противоположный тому, который вы хотите отменить. Тогда эта ревизия совершается. Единственное, что вам нужно сделать после этого - это слияние.
Вы можете отказаться от любого набора изменений, но не рекомендуется возвращать набор изменений слиянием.
Подробное объяснение команды с примером можно найти здесь.