Используя Mercurial, если вы совершите коммит, можете ли вы вернуться к исходному состоянию до фиксации? - PullRequest
1 голос
/ 19 июня 2010

hg backout tip похоже также возвращает все ваши файлы обратно к более старой версии. Есть ли способ изменить его обратно на ТОЧНО, как до фиксации, то есть с несколькими файлами, «измененными», но незафиксированными - по сути, как если бы «фиксация» никогда не выполнялась?

(hg rollback считается очень плохим и, как правило, этого не следует делать для контроля версий)

Ответы [ 2 ]

3 голосов
/ 19 июня 2010

hg rollback делает именно то, что вы просите - он отменяет hg commit, и вы попадаете в состояние, в котором вы были до совершения.система управления "теряет" версии, которые вы уже зафиксировали, но удобно отменить случайную фиксацию.

2 голосов
/ 28 июня 2010

Разумеется, если вы нажмете, не будет инструмента , который будет делать то, что вы хотите. При этом, если у вас есть несколько списков изменений, которые вы хотите удалить из своей локальной истории, а не просто отменить их действие с помощью hg backout, то вы можете использовать hg strip, который доступен как часть пакета расширения MQ.

Вы можете сделать следующее, чтобы получить желаемый эффект:

hg export tip > foo.patch

hg strip tip

hg import --no-commit foo.patch

...