我读过变基项目 http://mercurial.selenic.com/wiki/RebaseProject页面并尝试了一个不平凡的例子
(不是对一个完整的分支进行变基)。和这个案例很相似重新建立 D 基础
我场景 B 的情况。
这是 rebase 之前的情况:
default : 0 ----- 2
\
feature : 1 ----- 3
现在我想重新建立基础3
on 2
,给予:
default : 0 ----- 2 ----- 3
\
feature : 1
不幸的是,确切的命令没有给出变基项目 http://mercurial.selenic.com/wiki/RebaseProject页面,但根据我对用法概要的理解,它应该是:
hg rebase --source 3 --dest 2
但不知何故,我的理解一定是有缺陷的,因为我得到了与合并相结合的变基:
default : 0 ----- 2 ----- 3
\ /
feature : 1 -------
这是为什么?
重现场景的命令:
hg init
touch a
hg add a
hg commit -m "added a"
hg branch feature
touch b
hg add b
hg commit -m "added b on feature"
hg up -C default
touch c
hg add c
hg commit -m "added c on default"
hg up -C feature
echo "feature" >> a
hg commit -m "changed a on feature"
hg rebase --source 3 --dest 2
您的场景看起来与部分非常相似rebase G onto I
of scenario B
of the 变基项目 http://mercurial.selenic.com/wiki/RebaseProject应用场景:
场景B
...
...
将 G 变基到 I
在你的场景中,D
== 1
, I
== 2
and G
== 3
。变基后,3
维持其关系1
就像G'
维持其关系D
。这是因为D
is not的祖先I
and:
注意:仅当父级是目标的祖先时,Rebase 才会删除父级关系。
你确实想删除这种关系,那么,根据文档,你需要一个开发版本得到--detach
option:
使用开发版本可以使用新的 --detach 选项来删除这种关系。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)