我正在尝试重新调整我在本地机器上所做的一些更改。我收到错误:
abort: can't rebase immutable changeset 110e73ed65a4
(see hg help phases for details)
即使我更改了我正在重新设置基础的变更集上的阶段(并且阶段更改似乎成功),我也会遇到相同的错误。使用:
hg phase -f -d REV
我想知道历史记录中是否有我遗漏的变更集并且仍然不可变,如果有,是否有一种方法可以使用单个命令将变更集历史记录中的所有变更集更改为可变的。
或者,即使使用不可变的变更集,有没有办法强制 rebase ?
最佳答案
对公开的更改进行 rebase 被视为 very bad idea .您不应该更改任何已推送的历史记录——phases 的要点是跟踪哪些更改尚未推送(因此它们能够被修改),以及哪些更改已推送(因此它们是不可变的)。来自 rebase documentation :
You should not rebase changesets that have already been shared with others. Doing so will force everybody else to perform the same rebase or they will end up with duplicated changesets after pulling in your rebased changesets.
最好 merge 您的更改或 graft Graft(也称为cherry-picking)采用一个或多个变更集并将它们复制到您当前的分支。
关于mercurial - 您如何使用 Mercurial 重新设置不可变变更集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14057640/