我在外出一天之前就默认启动了一个分支,我没有对它进行任何更改。从那以后,默认添加了许多更改。我想将我的分支从默认值更新到最新版本,从默认值重建我的分支(删除并重新创建),或者以某种方式引入更改。
那么在Mercurial中,我将如何做到这一点?
听起来您没有进行任何提交,这意味着历史记录如下所示:
... [a] --- [b] --- (wc)
`--- [c] --- [d]
在这里,您的脏工作副本基于 b
并且您拉下了c
并d
.
由于没有提交,因此没有要合并的内容。您可以简单地更新:
$ hg update
您的修改将与c
和d
中的更改合并,以生成此图表:
... [a] --- [b] --- [c] --- [d] --- (wc)
如果您进行了一次或多次提交,但尚未将它们推送到任何地方,那么您可以使用 rebase 扩展将提交重新构建(重播)到不同的基础。你从那里开始
... [a] --- [b] --- [x] --- [y]
从主存储库中提取以获取:
... [a] --- [b] --- [x] --- [y]
`--- [c] --- [d]
运行hg rebase
后,您最终会得到
... [a] --- [b] --- [c] --- [d] --- [x'] --- [y']
其中x'
和y'
分别是x
和y
的重定基版本。只要您没有将分支推送到任何地方,就可以重复此过程(Mercurial 跟踪每个变更集的"阶段",当您将变更集推送到某个位置时,它会从draft
阶段移动到public
阶段)。