2010-11-23 43 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要回以前的狀態。