Pet*_*erg 54 version-control mercurial dvcs
我有两个分支,默认和branch1.我们团队中的一个人错误地将branch1合并.branch1中的内容尚未准备好与默认值合并(它包含构建和部署环境的主要返工).
我们做了'hg backout'的实验,退出合并(不确定这是正确的方法).然后从默认情况下删除branch1中的更改,这很好 - 但我们不能使用branch1重新合并.
我们该如何解决这个问题?
ang*_*son 91
在这里有许多场景你可能想要这样做,我将使每个场景成为标题,以便您可以找到适合您情况的场景.请注意,我仍然在学习Mercurial,如果我说错了,使用错误的术语,可以做得更好等,我想指点一下.
程序员已合并,但没有做任何其他事情,也没有以任何方式与任何人分享变更
在这种情况下,只需丢弃本地克隆,并从安全存储库中获取新的克隆.
程序员已合并,并继续基于该合并工作.应保留合并后的更改集,但应删除合并本身.尚未与任何人共享更改(合并+以下更改集)
在这种情况下,我会做四个中的一个:
要摆脱合并变更集+所有以下变更集,有几个选项:
在MQ扩展中使用strip命令
hg strip <hash of merge changeset>
Run Code Online (Sandbox Code Playgroud)克隆和拉取,并指定导致但不包括合并的变更集的哈希值.实质上,通过从受损的克隆中拉出一个新的克隆来创建一个新的克隆,并避免拉入你不想要的合并.
hg clone damaged -r <hash of first parent> .
hg pull damaged -r <hash of second parent>
Run Code Online (Sandbox Code Playgroud)程序员已经推送到主存储库,或推送给其他人,或从程序员库中取出的人.但是,您(如在开发人员组中)可以控制所有存储库,因为在更多工作完成之前,您可以联系并与所有人交谈
在这种情况下,我会看到步骤1或2是否可以完成,但可能必须在很多地方完成,所以这可能涉及很多工作.
如果没有人根据合并变更集完成工作,我会使用步骤1或2进行清理,然后推送到主存储库,并要求每个人从主存储库中获取新的克隆.
程序员推动了合并集,你不知道谁将拥有合并变更集.换句话说,如果你成功地从你的知识库中消除了它,那些仍然拥有它的人的偏离推动会把它带回来.
忽略合并变更集并在两个分支中工作,就好像它从未发生过一样.这将留下一个悬垂的头.稍后,当你合并了两个分支时,可以为这个头做一个空合并来摆脱它.
M <-- this is the one you want to disregard
/ \
* *
| |
* *
| |
Run Code Online (Sandbox Code Playgroud)
只需继续在两个分支机构工作:
| |
* *
| M | <-- this is the one you want to disregard
|/ \|
* *
| |
* *
| |
Run Code Online (Sandbox Code Playgroud)
然后你合并两个,你想要的真正的合并:
m
/ \
* *
| |
* *
| M | <-- this is the one you want to disregard
|/ \|
* *
| |
* *
| |
Run Code Online (Sandbox Code Playgroud)
然后你可以做一个空合并来摆脱悬空头.不幸的是,除了通过TortoiseHg,我不知道怎么做.它有一个复选框,我可以从其中一个分支丢弃更改.
使用TortoiseHg,我会更新到我想要保留的合并(最上面的小写m),然后选择并右键单击下面的悬空合并头,然后选中"放弃合并目标(其他)修订版中的所有更改" :

我们用 'hg backout' 做了一个实验,退出合并(不确定这是正确的方法)。然后来自 branch1 的更改在默认情况下被删除,这很好 - 但我们不能与 branch1 重新合并。
我使用 backout 进行合并取消。您不能重新合并,但您可以“退出退出合并”,即当您想要重新合并时,您可以在“退出合并变更集...”提交上进行 'hg backout',然后再次合并分支。
例子:
7 M remerge
6 / \
5 * | hg backout 3 (backout backout)
4 | * fix error
3 * | hg backout 2
2 M | fail merge
/ \
1 * *
| |
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19882 次 |
| 最近记录: |