Git与失去的历史合并

时间:2013-05-24 12:25:03

标签: git

我在分支上开发了一个功能。在开发过程中,我们转移到另一个git主机,并将一些提交合并到新主机上。我现在正试图将其余部分合并,并遇到问题。历史看起来像这样:

  B------E-----G             | feature branch
 /        \     \
A----C     \     \           | master
      \     \     \
       D-----F-----H         | new master

在F,一个被压缩的变化(B:E)应用于新的主人,所以没有历史。我想让G-> H合并,但是当我这样做时会遇到冲突。

实现此合并的最佳方式是什么,理想情况下保留E和G之间新变化的历史记录?

1 个答案:

答案 0 :(得分:0)

简短的回答是:解决冲突。

如果E----G是一系列提交,您可以尝试在F之上逐个合并它们 - 这应该可以让您一次一勺地处理冲突。之后,您将有办法使用历史记录,最终在F之上进行一次合并提交。

根据您的描述:F是新主服务器上功能分支的合并提交。历史记录不会丢失:它是B--FC--F的混合。

这种合并可能产生了冲突,这些冲突在评估之前就已经解决了。当您尝试合并EF时,GF之间的差异会产生冲突。

您可以看到这些差异:git diff E F