Как разблокировать в 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 - он изменяет историю, поэтому при неправильном использовании он может потерять данные.

В Mercurial вы можете использовать команду возврата, которая создает набор изменений, противоположный тому, который вы хотите отменить. Тогда эта ревизия совершается. Единственное, что вам нужно сделать после этого - это слияние.

Вы можете отказаться от любого набора изменений, но не рекомендуется возвращать набор изменений слиянием.

Подробное объяснение команды с примером можно найти здесь.

Другие вопросы по тегам