如何将一些变更集移动到 Mercurial 中的新分支
我想将变更集从一个分支移动到另一个分支。基本上,我目前有:
A -> B -> C -> D # default branch
我想要:
A # default branch
\-> B -> C -> D # some_new_branch
some_new_branch 尚不存在。我习惯了 git,所以我想我缺少一种简单的“mercurial”方式。
I want to move a changeset from one branch to another. Basically, I currently have:
A -> B -> C -> D # default branch
And I want:
A # default branch
\-> B -> C -> D # some_new_branch
Where some_new_branch does not exist yet. I am used to git, so I guess there is a simple "mercurial" way I am missing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
一种方法是导出B、C、D的补丁;更新为A;分支;应用补丁:
要从默认分支中删除 B、C、D,请使用 mq 扩展的
strip
命令。One way is to export a patch for B,C,D; update to A; branch; apply patch:
To remove B,C,D from the default branch, use the mq extension's
strip
command.听起来有点像 git 中的择优挑选操作。 移植扩展可能就是您正在寻找的。
Sounds a bit like a cherry-pick operation in git. The Transplant Extension may be what you're looking for.
使用 Mercurial 队列:
没有注释:
With Mercurial Queue:
Without comments:
除了移植或修补之外,您还可以使用 graft。
请注意,改变历史是不好的做法。仅当您尚未推动时才应脱衣。否则,您仍然可以撤销您的更改。
Alternative to transplant or patch, you could use graft.
Note that changing history is bad practice. You should strip only if you haven't pushed yet. Otherwise, you could still backout your changes.