在Git中,我可以这样做:
1.开始使用新功能: $ git co -b newfeature-123#(本地功能开发分支) 进行几次提交(M,N,O) 大师A --- B --- C \ newfeature-123 M --- N --- O 2.从上游主服务器获取新更改: $ git pull (master更新为ff-commits) 大师A --- B --- C --- D --- E --- F \ newfeature-123 M --- N --- O 3.调整主站的基础,以便使用新功能 可以针对最新的上游变化进行开发: (摘自newfeature-123) $ git rebase master 大师A --- B --- C --- D --- E --- F \ newfeature-123 M --- N --- O
我想知道如何在Mercurial中做同样的事情,并且已经在网上搜寻了答案,但是我能找到的最好的方法是:git rebase-hg可以做到这一点
该链接提供了2个示例:
1.我将承认这一点:(将示例中的修订替换为我自己示例中的修订)
hg up -CF 汞分支-f newfeature-123 汞移植-a -b newfeature-123
效果还不错,只是它以未合并的头的形式保留了预基准MNO,并创建了3个新提交M',N',O',代表它们从更新的主线分支。
基本上问题是我最终遇到了这个问题:
大师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分支newfeature-123 hg qpush -a 汞qdel -r qbase:qtip
这确实产生了所需的图形:
大师A --- B --- C --- D --- E --- F \ newfeature-123 M --- N --- O
但是这些命令(共6个!)似乎比它们复杂得多。
$ git rebase master
我想知道这是否是等效的汞含量,或者是否有其他类似Git的简单方法。
git reflog
,直到它们被垃圾回收,它们才被完全清除。如果您想将它们保留在命名分支中,从而不必使用reflog,则只需git branch feature-123_original
在重新基准化之前这样做。