1

我在我的 repo 中使用 hg 书签,因为它们让我可以轻松地处理不同的功能。Mercurial 的问题在于,所有提交都与一个分支相关联。所以,我所做的是我有很多本地更改,有很多拉(但不是更新的更改)到同一个分支。换句话说,我的本地仓库如下所示:

default     -------E-F---------
newf        -A-C-D---------J---
newf,bmark  --\--------H-I----K

newf是一个远程分支,拉到 J,bmark是我创建的书签。中的所有内容newf,标记bmark为我的机器都是严格本地的。

现在,我想将 H、I 和 K(实际上,有大约 20 处更改)重新分配到不同的分支,我可以将其推送到 repo。有没有办法在 Mercurial 中做到这一点,以便我的工作副本(我仍然有一些未提交的更改)尽可能不受影响?

根据使用“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

除了得到一些关于阶段的错误之外,rebase 给了我一些我不期望的东西:

default     -------E-F---------
newf        -A-C-D---------J---
newf,bmark    \   -----H-I----K
newbranch      \X/

也就是说,H,IK被列为仍然属于newfand bmark,并且它们在X属于 branch的提交上位于顶部newbranch。我在这里做错了吗?

4

1 回答 1

1

我使用rebase将提交从一个分支移动到另一个分支。它适用于你的情况吗?

于 2012-08-16T07:50:52.410 回答