Git 与当前提交的祖先合并

Git 与当前提交的祖先合并,git,mercurial,branch,dvcs,darcs,Git,Mercurial,Branch,Dvcs,Darcs,如何在不同的版本控制系统中合并来自同一分支的先前被拒绝的想法?哪一方对此提供支持 这是我有根据的猜测——这个总结准确吗 Git和集中式VCS:大概您恢复了要合并的提交。因此,您实际上是在尝试合并到当前提交的祖先中。我没有尝试过这个,但我不认为它会得到很好的支持。我想你可以与承诺合并的相关祖先(事后看来是隐喻性的“分支点”)进行三方合并(你必须确定,因为没有记录),但风险投资公司会支持这一点吗?还是你必须自己做 Mercurial,使用书签(或以类似于书签的方式使用匿名分支):如果您努力使用这种方

如何在不同的版本控制系统中合并来自同一分支的先前被拒绝的想法?哪一方对此提供支持

这是我有根据的猜测——这个总结准确吗

Git和集中式VCS:大概您恢复了要合并的提交。因此,您实际上是在尝试合并到当前提交的祖先中。我没有尝试过这个,但我不认为它会得到很好的支持。我想你可以与承诺合并的相关祖先(事后看来是隐喻性的“分支点”)进行三方合并(你必须确定,因为没有记录),但风险投资公司会支持这一点吗?还是你必须自己做

Mercurial,使用书签(或以类似于书签的方式使用匿名分支):如果您努力使用这种方法,您将“改变方向”,并在以前拒绝旧提交的时间点从旧提交的祖先进行分支。因此,尽管提交最初是在这个分支上完成的,但现在不在这个分支上(因为书签是动态的,不是不可变的,而且您颠倒了方向),所以根本没有问题。合并

Darcs,如果head和旧提交之间没有标记:在Darcs中,随便看一眼,就好像有一条提交直线,但实际上在第一次提交或最近的标记和head之间有一个依赖关系图(这一点并不明显,而且还没有可视化的工具!)。因此,如果DARC认为您的旧提交独立于当前头部(这很可能是因为您已恢复旧提交),则它们是无形的独立分支,可以很愉快地合并。如果DARC认为旧的提交依赖于head,那么这种情况可能与git案例类似,尽管我认为除了David Roundy之外,没有人完全理解DARC补丁理论

DARC,如果同时有一个标签:我认为这就像git一样,因为一个标签将所有不可见的头部捆绑在一起,形成一个依赖于所有头部的头部(这可能是DARC补丁理论最容易理解的方面之一)


脚注:为了简洁起见,我通篇都提到了“旧提交”,尽管之前被拒绝的想法当然可能是一长串的提交。

对于Git,这个想法是创建一个分支,从要隔离的第一个旧提交开始,然后在新分支上创建那些旧提交


一旦您将这些分支隔离在自己的分支中,您就可以将其合并到您想要的任何其他分支。

这听起来是一种相当简单的方法-谢谢。(但你不是指第一个旧提交的父级吗?)。我想这是一个品味的问题,无论如何,如果你严格遵循一个特性和错误修复分支方法,这个问题不应该出现在任何风投身上,至少以我描述的这种简单的方式。也就是说,这样一种方法非常重要。@RobinGreen:在樱桃采摘之后,这些提交不再是主分支的一部分。使用最新的Git版本,您可以描述新分支的用途: