我在我的回购中使用了hg书签,因为它们让我可以轻松地使用不同的功能。 Mercurial的事情是,仍然,所有提交都与分支相关联。所以,我所做的是我有很多本地更改,有很多拉(但没有更新)到同一个分支。换句话说,我的本地仓库看起来像这样:
default -------E-F---------
newf -A-C-D---------J---
newf,bmark --\--------H-I----K
newf
是一个远程分支,上拉到J,bmark
是我创建的书签。标有newf
的{{1}}中的所有内容都严格属于我的计算机。
现在,我想重新分配H,I和K(实际上,有大约20个更改)到另一个分支,我可以推送到回购。有没有办法在Mercurial中执行此操作,以便我的工作副本(我仍然有一些未提交的更改)仍然不受影响?
基于使用'rebase'的建议,我尝试了以下步骤:
bmark
除了得到关于阶段的一些错误之外,rebase给了我一些我不希望的东西:
hg up -r A
hg branch newbranch && hg ci -m "will hold some development"
# This effectively made a commit X
hg up bmark
hg rebase -d newbranch
即,列出default -------E-F---------
newf -A-C-D---------J---
newf,bmark \ -----H-I----K
newbranch \X/
,H
和I
仍属于K
和newf
,并且它们在提交时位于顶部{ {1}}属于分支bmark
。我在这里做错了吗?