2013-07-19 26 views
3

我有一個主分支。此外,我有一個功能分支,與主分支衝突。有沒有辦法僅對功能分支進行一些更改,例如,通過使用ourstheirs策略可以自動解決的衝突除外,通過git命令合併功能分支的嘗試不會產生任何衝突?如何預先解決git中的衝突,所以他們會消失在一個實際的合併?

我排除的變體,在那裏我失去的功能分支的功能的變化 - 等,與主分支代替它,等

另外我有一個分支一些先決條件在主合併之前 - 如編譯,單元測試等。所以建議的更改不應該違反先決條件。

理論上每種衝突都有可能嗎?

+0

如果我明白,你想從主到功能分支合併,在發生衝突(並保留主代碼)的情況下丟失功能所做的更改? –

+0

不,我想要相反的 - 通過「我排除變體」,我的意思是我不希望這樣的變體被列爲答案 - 因爲它們是微不足道的和毫無意義的。 –

+0

因此,就你而言,在開發過程中,你確實承諾掌握主功能和功能,而在發佈期間你希望將功能合併爲主? –

回答

1

是的,這實際上很簡單,在git中做一件很平常的事情:我假設你有一個工作流程,其中master由一個人維護,但多人開發功能分支?

您只需要功能分支的維護人員將master合併到他們的分支中,然後宣佈他們的分支「完成」。這保證了「現在」的無衝突合併。如果你先合併其他東西,你可能不得不要求維護者再次合併。

旁註:你應該幾乎從不使用我們或他們的合併策略,除非你真的知道你在做什麼。

+0

它應該是因爲新的共同祖先,還是因爲代碼的變化? –

+0

由於共同的祖先,它會工作。這將使該功能合併爲主快速前進。 –

+0

共同的祖先是爲什麼這從git的角度來看。但是,共同的祖先存在的事實也清楚地證明代碼發生了變化。至少git是這麼看的。所以完整的答案是:兩者。雖然你當然可以創建這個共同的祖先,而不需要更改代碼,但是你會撒謊。所以git的假設破壞了,並且算法的基礎。 – Chronial