在我离开一天之前,我从默认开始了一个分支,并且我没有对其进行任何更改。从那时起,默认值已经添加了许多更改。我想将我的分支从默认更新到最新,从默认重建我的分支(删除并重新创建),或者以某种方式拉入更改。
那么在 Mercurial 中我该怎么做呢?
在我离开一天之前,我从默认开始了一个分支,并且我没有对其进行任何更改。从那时起,默认值已经添加了许多更改。我想将我的分支从默认更新到最新,从默认重建我的分支(删除并重新创建),或者以某种方式拉入更改。
那么在 Mercurial 中我该怎么做呢?
听起来您还没有进行任何提交,这意味着历史记录如下所示:
... [a] --- [b] --- (wc)
\
`--- [c] --- [d]
在这里,您的脏工作副本基于b
并且您拉下c
and 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'
的变基版本。只要您没有将分支推送到任何地方,您就可以重复此过程(Mercurial 会跟踪每个变更集的“阶段”,并且当您将变更集推送到某处时,它会从一个阶段移动到另一个阶段)。x
y
draft
public