在 Git 中,我可以这样做:
1.开始开发新功能: $ git co -b newfeature-123 #(本地功能开发分支) 做一些提交(M,N,O) 大师A---B---C \ 新功能-123 M---N---O 2. 从上游 master 拉取新的变化: $ git拉 (master 用 ff-commits 更新) 主 A---B---C---D---E---F \ 新功能-123 M---N---O 3. rebase off master 让我的新功能 可以针对最新的上游更改进行开发: (来自 newfeature-123) $ git rebase master 主 A---B---C---D---E---F \ 新功能-123 M---N---O
我想知道如何在 Mercurial 中做同样的事情,我已经在网上搜索了答案,但我能找到的最好的是:git rebase - can hg do that
该链接提供了 2 个示例:
1. 我承认这一点:(将示例中的修订替换为我自己示例中的修订)
汞上升-CF hg 分支 -f newfeature-123 hg 移植 -a -b newfeature-123
还不错,除了它将 pre-rebase MNO 作为未合并的头部留下并创建 3 个新提交 M',N',O' 代表它们从更新的主线分支。
基本上问题是我最终得到了这个:
主 A---B---C---D---E---F \ \ 新功能-123 \ M'---N'---O' \ 新功能-123 M---N---O
这不好,因为它留下了应该删除的本地不需要的提交。
- 来自同一链接的另一个选项是
hg qimport -r M:O hg qpop -a hg起来F HG 分支 newfeature-123 hg qpush -a hg qdel -r qbase:qtip
这确实会产生所需的图表:
主 A---B---C---D---E---F \ 新功能-123 M---N---O
但是这些命令(全部 6 个!)似乎比
$ git rebase master
我想知道这是否是 Hg 中唯一的等价物,或者是否有其他可用的方法,比如 Git。