2010-11-23 41 views
2

看来我们已经做了一点与git合并的“意大利面条”。 alt textGit merge Spaghetti - 如何解决它?

我们是新的这一点,将基本上喜欢有以下分支

Master A - B - C 
      __// 
Core  / A - B - C - D - E - F 
      | 
iPhone A - B - C 

但似乎在某些时候我们合并掌握到核心,然后核心回到主机,然后掌握回核心..不知道什么/如何/为什么会发生这样的事情..但我会喜欢一些帮助,使其回到正轨上,而不是太乱!

任何帮助表示赞赏。

+0

您能否澄清一下:ABC上的主控只与Core上提交的ABCDEF稍有关系,并且不清楚这些中的任何一个是否与iPhone上的祖先有很大的关联......也许您应该重命名Core提交HIJKLM和iPhone提交TUV。此外,从Master/C到Core/A的斜线令人费解;是向后运动故意的? iPhone分支真的有问题吗?如果你真的希望主/ A和核心/ A和iPhone/A是相同的提交,那么/ B提交呢?那么期望的十几次提交如何与所示的23次提交相关? – 2010-11-23 02:33:16

+0

所以我们想要有3个分支,一个只有代码可以使用的主分支。我们存储iphone开发的iPhone分支,以及存储应用程序核心的广告核心分支。无论何时我们准备发布代码,我们都会将分支与主分支合并,以便在主分支上获得新版本。也许这样做没有意义,我只是在学习git。 !谢谢您的帮助。 – Martin 2010-11-23 02:54:36

回答

1

所以你想线性化“核心”分支?为什么不只是git rebase呢?

Master A - B - C 
      __// 
Core  / D - E - F - G - H - I 
      | 
iPhone J - K - L 


git checkout core 
git rebase C [where "C" is the sha1 of C] 

如果你看到任何冲突,做一个git rebase --abort要回以前的状态。