在Git中,我可以这样做:
1. Start working on new feature: $ git co -b newfeature-123 # (a local feature development branch) do a few commits (M, N, O) master A---B---C \ newfeature-123 M---N---O 2. Pull new changes from upstream master: $ git pull (master updated with ff-commits) master A---B---C---D---E---F \ newfeature-123 M---N---O 3. Rebase off master so that my new feature can be developed against the latest upstream changes: (from newfeature-123) $ git rebase master master A---B---C---D---E---F \ newfeature-123 M---N---O
< br / >
我想知道如何在Mercurial中做同样的事情,我在网上搜索了一个答案,但我能找到的最好的是:Git rebase - hg能做到吗
该链接提供了两个示例:
.
1. 我承认这:(用我自己的例子替换例子中的修订)
hg up -C F hg branch -f newfeature-123 hg transplant -a -b newfeature-123
不是很糟糕,除了它留下了预重基M-N-O作为未合并的头,并创建了3个新的提交M',N',O',代表它们从更新的主线分支。
基本上问题是这样的:
master A---B---C---D---E---F \ \ newfeature-123 \ M'---N'---O' \ newfeature-123 M---N---O
这并不好,因为它会留下应该丢弃的本地、不需要的提交。
hg qimport -r M:O hg qpop -a hg up F hg branch newfeature-123 hg qpush -a hg qdel -r qbase:qtip
这就得到了我们想要的图:
master A---B---C---D---E---F \ newfeature-123 M---N---O
但是这些命令(总共6个!)似乎比
$ git rebase master
我想知道这是否是Hg中唯一等效的方法,或者是否有其他简单的方法,如Git。