我正在开发一个由mercurial控制版本的项目。
我有一个克隆。我的朋友有一个克隆。
我的朋友对他的克隆进行了一些更改,然后将它们推送到主克隆。我已经对我的克隆做了一些更改,并准备推送到主克隆。但是,在推送到主克隆之前,我想将他的更改合并到我自己的克隆中(我认为这是正确的方法吗?)
我该怎么做?
谢谢
答案 0 :(得分:7)
不要害怕合并。当我们必须合并分支时,我们中的许多人在cvs上削减了我的牙齿。 Mercurial的分支和合并是自然而简单的。
hg pull
从主仓库中获取所有新节点,在您的情况下,这些将成为新的头部
hg merge
创建当前工作文件状态,作为两个父节点的合并
hg resolve -l
列出任何冲突的文件,然后编辑它们,直到您满意为止
hg resolve -m
将已修复的文件标记为已解决
hg commit
实际提交两个父节点的合并
hg push
让您的朋友获得他们的副本
记住变更集中的mercurial交易。变更集只是某个时刻项目快照状态的另一个名称。 通常,每个变更集都有一个父变更集,即状态所基于的先前已提交状态。合并操作是个例外,因为它有两个父变更集。
每个变更集都有零个或多个子变更集。 如果它没有子项,则变更集是“头”。 如果它有超过1个孩子,那么它代表了一个不同的发展分支。
答案 1 :(得分:0)
hg pull -u
。这将从主要克隆(包括您的朋友)获得所有新更改并更新您的工作副本。